Docker学习006 -- docker网络 bridge模式分配容器IP实现容器ping通
前言:docker会默认有三种网络:bridge none hostdocker启动时会根据docker0分配默认的ip地址,而分配的这个网络不是真实的地址,不能通过宿主机进行访问。可以通过docker network ls 进行查看docker的网络信息。1. bridge模式容器间的访问预准备:安装网桥工具yum install -y bridge-utils①首先启动一个nginx容器,命名
目录
前言:docker会默认有三种网络:bridge none host
docker启动时会根据docker0分配默认的ip地址,而分配的这个网络不是真实的地址,不能通过宿主机进行访问。
可以通过docker network ls 进行查看docker的网络信息。
1. bridge模式容器间的访问
预准备:安装网桥工具
yum install -y bridge-utils
①首先启动一个nginx容器,命名为nginx1
docker run -itd --name nginx1 nginx:1.19.3-alpine
②查看docker运行的容器 docker ps
③查看docker中网络信息, docker network ls
④查看docker bridge 网络详细信息
docker network inspect bridge
得到信息中可以看到,bridge网络中有名称为 nginx1 的容器,分配的ip地址为 172.17.0.2
⑤通过ip addr 可以查看ip的信息
docker0 对应的网段就是172.17.0.1
⑥此时再创建一个容器 nginx2
docker run -itd --name nginx2 nginx:1.19.3-alpine
⑦通过docker network inspect bridge 可以看到bridge网络下存在两个nginx容器,对应的ip地址分别是172.17.0.2 172.17.0.3
进入到nginx1中
ping 172.17.0.3(nginx2对应的容器ip地址) 可以ping通,但是ping nginx2 则ping不通。
此时nginx1和nginx2之间是通过docker0进行关联的,docker0是分配了默认的ip地址,只能根据ip相互访问,但是不能直接通过名称访问
此时可以通过新建一个网络,将nginx1和nginx2都绑定新网络
2.创建bridge网络
①创建一个bridge网络
docker network create -d bridge g-bridge
②查看网络信息
现在多了一个g-bridge网络,
③将nginx1容器绑定 g-bridge 网络
docker network connect g-bridge nginx1
此时查看 g-bridge 网络下不存在任何容器,默认网关为:172.18.0.1 区分docker的172.17.0.1
docker network inspect g-bridge
④查看 g-bridge 网络的信息,可以看到g-bridge网络下存在一个nginx1的容器
docker network inspect g-bridge
⑤同理,将nginx2容器也与 g-bridge 网络进行绑定
进入nginx1容器中,ping nginx2
此时发现容器可以ping的通
g-bridge 网络信息,存在nginx1 和nginx2 容器
3.为网络指定ip地址
①将现有的容器全部删除
并将新建的g-bridge网络删除
②新建指定ip的网络
docker network create -d bridge --subnet=172.172.0.1/24 --gateway 172.172.0.1 g-bridge
③查看网络
④创建容器时,指定网络为 g-bridge ,ip地址为 172.172.0.122
docker run -itd --name nginx1 --net g-bridge --ip 172.172.0.122 nginx:1.19.3-alpine
此时容器的ip信息
更多推荐
所有评论(0)