欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[Docker]四种网络模式之bridge模式

程序员文章站 2024-03-17 11:28:52
...

现在来聊聊Docker网络的桥接模式.

  • bridge模式原理

Docker的默认网络配置下用的是bridge模式,此模式会给每个新创建的容器分配独立的Namespace,IP段等,同时文件系统/进程等也是隔离的. 另外它会将对应容器的网络接到某个指定的虚拟网桥(比如启动Docker服务时默认创建的docker0)上.

  • bridge模式的特点

1)处于该模式的容器和宿主机网络不在同一个网段,容器一般使用172.16.0.xx/24这种网段. 所以容器不能直接和宿主机以外的网络进行通讯, 而必须要经过NAT的转换.
2)处于该模式的容器需要在宿主机上竞争端口,完成端口映射的配置后, 从外部到容器内的网络访问tcp流量将会通过DNAT从宿主机端口转发到容器内对应的端口上.
3)容器对于宿主机以外是不可见的,从容器发出的网络请求会通过SNAT从已对接的虚拟网桥(如宿主机的docker0)上统一发出网络请求.对于外部环境来说,就像是宿主机一个普通的进程发出的信息.
4)连接在同一个虚拟网桥上的容器默认可以相互通讯.
5)默认情况下是不能指定某个容器的ip的(随机分配),不过可以通过创建subnet来实现这个需求.

  • 操作示例

    • 创建简单的桥接网络
docker network create --driver bridge <your_network_name>
  • 创建一个指定了subnet的桥接网络
docker network create --driver bridge --subnet 172.19.0.0/16 <your_network_name>
  • 创建一个网络模式为bridge的容器
docker run -itd --name test1 --network <your_network_name> <your_docker_image> /bin/bash
  • 为容器指定ip
docker run -itd --name test1 --network <your_network_name> --ip 172.19.0.10 <your_docker_image> /bin/bash
相关标签: docker bridge