继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

浅谈Docker网络之桥接模式

xiaomo
关注TA
已关注
手记 25
粉丝 244
获赞 202

现在来聊聊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
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP