这个实验一定要在Linux环境下做,docker for mac, docker for win是不行的。
docker网络类型
docker会给我们创建三种网络类型:bridge, host, none
1 | docker network ls |
在没有指定相关网络的情况下,默认情况,会使用bridge网络模式。
网络验证
启动两个busybox容器。
1 | docker run -dit --name busybox1 busybox |
查看一下bridge网络
1 | docker network inspect bridge |
可以看到busybox1和busybox2两个容器都连接到了bridge网络。两个容器的ip地址也能看到。
进入busybox1容器
1 | docker exec -it busybox1 sh |
通过ip地址和容器名ping容器
1 | / # ping 172.17.0.3 |
可以得出,通过ip地址是可以ping通的,但通过容器名是不行的。
查看hosts
信息,也找不到任何busybox2的信息
1 | cat /etc/hosts |
新建bridge网络
1 | docker network create --driver bridge busybox_bridge |
查看网络
1 | docker network ls |
分别创建busybox3和busybox4容器,并加入到busybox_bridge网络中
1 | docker run -dit --network busybox_bridge --name busybox3 busybox |
进入busybox3
本以为可以PING得通busybox4,但貌似不行,此实验失败。后面再研究。
host模式
以host模式启动一个nginx容器。
1 | docker run --rm -d --net host nginx |
因为是host模式,容器和主机共享一样的网络。
1 | curl localhost |