1、Bridge模式
bridge 模式是 docker 的默认⽹络模式,不写 –net 参数,就是 bridge 模式。比如使⽤ docker run - p 时
工作模式从网上找了一个,如下
例子:
run -it -d --name test1 --net=bridge centos:v1 bash run -it -d --name test2 --net=bridge centos:v1 bash docker exec -it test1 bash docker exec -it test2 bash ifconfig
1-2、网络互通
上面默认是通的,也可以用--link 参数,只不过是单向通的
docker run -it -d --name test3 --link test1 centos:v1 bash
1-3、容器互联应该自定义Docker ⽹络来连接多个容器⽽不是使⽤ --link 参数
docker network create -d bridge my-net
-d 参数指定 Docker ⽹络类型,有 bridge overlay 。其中 overlay ⽹络类型⽤于 Swarm mode
docker run -it -d --name test1 --network=my-net centos:v1 bash docker run -it -d --name test2 --network=my-net centos:v1 bash
2、Host 模式
如果启动容器的时候使⽤ host 模式,那么这个容器将不会获得⼀个独⽴的 Network Namespace , ⽽是和宿主机共⽤⼀个 Network Namespace。 容器将不会虚拟出⾃⼰的⽹卡,配置⾃⼰的 IP 等, ⽽是使 ⽤宿主机的 IP 和端⼝。但是,容器的其他⽅⾯,如⽂件系统、进程列表等还是和宿主机隔离的。 Host模式如下图所示:
docker run -it -d --name test3 --network=host centos:v1 bash docker run -it -d --name test4 --network=host centos:v1 bash docker exec -it test3 bash docker exec -it test4 bash 互ping 不通的 ping test4 ping test3
是和宿主机公用的网络模式
3、Container 模式
两个容器的进程可以通过 lo 网卡设备通信。
docker run -it -d --name test5_container --network=container:test2 busybox /bin/sh -c 'while true;do echo 12lee 1;done'
4、None模式
docker run -it -d --name test6_none --network=none busybox /bin/sh -c 'while true;do echo 1234;slee 1;done'
无网卡、IP、路由等信息,需要我们为 Docker 容器添加网卡、配置 IP 等