关于docker network网络

首先,我们来看看Docker默认的网络模式,即docker0网桥。

每当你安装Docker时,它会创建一个名为docker0的虚拟网桥,并设置一个IP地址范围供它进行端口映射等工作。所有Docker容器在创建时,都会自动连接到这个docker0网桥,并分配一个虚拟IP地址。这样,容器与主机之间,以及容器与容器之间就可以相互通信了。

但是,docker0网桥存在一些限制:容器之间的连接不够安全,IP地址也可能会发生冲突等问题。因此,Docker引入了自定义网络的概念,来解决这些问题。

当你使用docker-compose.yml文件定义一个networks参数时,Docker会基于该参数创建一个自定义网络。比如:

version: '3'
services:
  web:
    build: .
    networks:
      - frontend
  db:
    image: postgres
    networks:
      - backend

networks:
  frontend:
    driver: bridge
  backend:
    driver: bridge

在这个例子中,我们定义了两个独立的网络frontendbackendweb服务连接到frontend网络,而db服务连接到backend网络。这样,webdb服务之间就无法直接通信了,从而增加了一层隔离和安全性。

除了隔离的好处,自定义网络还可以互通于docker0网桥。这一过程是自动完成的。

当一个容器连接到自定义的网络时,Docker会在该网络与docker0网桥之间创建一个"网桥连接"。因此,即使容器位于不同的自定义网络,它们也可以通过连接到docker0网桥来实现互通。

当然,这种自动的互通有一定的安全隐患。如果你想禁止某些容器直接互通,你可以将它们分配到不同的自定义网络中。

此外,Docker还支持hostoverlay等多种网络模式,可以用于满足不同的场景。它们的工作原理也不尽相同。

总之,Docker的网络设计灵活多样,可以满足绝大部分需求。合理地规划和配置网络有利于提高容器应用的安全性、可靠性和维护性。

常用命令:

ip a 显示网络接口信息,包括 IP 地址、MAC 地址、状态等。

docker network ls  列出所有docker网络

docker network inspect 展示docker网络详情

docker network prune  删除所有未使用的网络

后续更深层次的内容还需继续学习...

相关推荐

  1. 关于网络安全

    2024-05-11 17:10:05       57 阅读
  2. 一些关于网络的笔记

    2024-05-11 17:10:05       33 阅读
  3. 关于rockylinux9的网络配置

    2024-05-11 17:10:05       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 17:10:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 17:10:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 17:10:05       87 阅读
  4. Python语言-面向对象

    2024-05-11 17:10:05       96 阅读

热门阅读

  1. 使用torch.nn.Sequential构建神经网络

    2024-05-11 17:10:05       31 阅读
  2. SpringBoot Mockito 依赖注入

    2024-05-11 17:10:05       36 阅读
  3. vue2中mixins的用法和需要注意的地方

    2024-05-11 17:10:05       31 阅读
  4. linux netstat 查看指定端口

    2024-05-11 17:10:05       34 阅读
  5. 【1分钟了解npm】

    2024-05-11 17:10:05       28 阅读
  6. 不使用EF框架实现数据库增删改查

    2024-05-11 17:10:05       33 阅读
  7. .NET_控制反转简述

    2024-05-11 17:10:05       38 阅读
  8. No signature found in package of version 2 or newer for package

    2024-05-11 17:10:05       26 阅读
  9. go-Expect-实验

    2024-05-11 17:10:05       36 阅读
  10. Linux 第二十六章

    2024-05-11 17:10:05       33 阅读
  11. vue3-seamless-scroll实现循环滚动

    2024-05-11 17:10:05       27 阅读
  12. 以太网网络变压器型号

    2024-05-11 17:10:05       29 阅读
  13. git 更换远程仓库地址三种方法总结

    2024-05-11 17:10:05       28 阅读