首先我们需要了解的是:每个docker容器都是隔离的,所以它们之间是相互不同的!
那么我们开始操作起来,让他们之间可以相互ping通网络。。。
一、拉取镜像创建容器
1.在这之前首先关闭防火墙;如果显示 runinng 则执行:sudo systemctl stop firewalld
2.在https://hub.docker.com里拉取镜像 busybox (注:busybox相当于小型的centos虚拟机,且比较小) 执行docker image ls 查看镜像;
3.创建两个容器:
docker run -it -d --name test1 busybox
docker run -it -d --name test2 busybox
二、查看网络连接状态
docker network ls
这里有个bridge,默认情况下创建的所有容器都会在bridge网段;
查看bridge网段详情通常是
docker network inspect bridge
这里我们下在一个小插件:
sudo yum install -y bridge-utils
这样执行 sudo brctl show
可以清晰简单的看到连接到各网段的容器
进入test1容器docker exec -it test1 sh
在上图可以看到test2 的ip是172.17.0.3,那么我们ping一下test2试试看是否网络可通是可以的 因为其在同一各网段;那么直接ping容器名字呢?那么神操作来啦 简单的命令试试结果吧
docker run -d -it --link test2 --name test3 busybox
进入test3容器OK!
那么如果不是在bridge网段的同期是否能ping通呢
首先建一个网段取名为:my-bridge
docker network create --driver bridge my-bridge
其中–driver是表示基于后面参数bridge建立的网段my-bridge
来吧,创建一个在my-bridge网段的容器
docker run -it -d --net=my-bridge --name test4 busybox
很显然test4 和test1.2.4都不在一个网段ping下试试吧不行的,那么见证奇迹的时刻到了,先看看网络连接我们把test也加入bridge网段(test4会有两个ip)
docker network connect bridge test4
再看下网段情况那么我们进入test4网段随意ping一下bridge网段的容器OK,很奈斯