[Docker]四种网络模式之bridge模式
现在来聊聊Docker网络的桥接模式.bridge模式原理Docker的默认网络配置下用的是bridge模式,此模式会给每个新创建的容器分配独立的Namespace,IP段等,同时文件系统/进程等也是隔离的. 另外它会将对应容器的网络接到某个指定的虚拟网桥(比如启动Docker服务时默认创建的docker0)上.bridge模式的特点1)处于该模式的容器和宿主机网络不在同一个...
·
现在来聊聊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
更多推荐
已为社区贡献9条内容
所有评论(0)