现在来聊聊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
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦