Docker的网络模式
网络模式 |
参数 |
说明 |
host模式 |
--net=host |
容器和宿主机共享 Network namespace |
container模式 |
--net={id} |
容器和另外一个容器共享 Network namespace。 kubernetes 中的pod就是多个容器共享一个 Network namespace |
none模式 |
--net=none |
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配 veth pair 和网桥连接,配置IP等 |
bridge模式 |
--net=bridge |
默认为该模式,通过 -p 指定端口映射 |
查看当前网络
docker network ls
创建网络
docker network create -d bridge my-net
#my-net 为名字
# bridge 为类型
使用bridge进行网络之间的通信
1.创建一个容器
docker run -itd --rm --name busybox1 --network my-net busybox sh -c 'while true;do echo hello;done'
2.在启动一个容器,加到同一个网络里
docker run -itd --rm --name busybox2 --network my-net busybox sh -c 'while true;do echo hello;done'
docker run -it --rm --name busybox2 --network my-net busybox sh
可以通信
host模式
3.启动一个docker容器与宿主机通信
docker run -tid --net=host --name docker_host1 busybox
docker exec -it docker_host1 sh
在使用ifconfig命令查看网卡,即可看到宿主机的网卡配置
Container模式
docker run -tid --name host1 busybox
# 创建host2容器共享host1容器的网络
docker run -itd --net=container:host1 --name host2 busybo