目标
容器间通过主机名访问
默认网络环境(动态 IP,通过主机名无法通信)
docker run -it --rm --name testdb -h testdb centos:8 /bin/bash
docker run -it --rm --name testweb -h testweb centos:8 /bin/bash
[root@testdb /]# ping testweb
ping: testweb: Name or service not known
[root@testweb /]# ping testdb
ping: testdb: Name or service not known
修改 Docker 默认网关
- 创建网络桥接
docker network create -d bridge --subnet=192.168.16.0/20 my-bridge
docker network ls
ip a
- 创建容器 并 配置网桥
docker run -it --rm -h testdb --network my-bridge centos:8 /bin/bash
docker run -it --rm -h testweb --network my-bridge centos:8 /bin/bash
[root@testdb /]# ping testweb
[root@testweb /]# ping testdb
- 查看 bridge0 网络
docker network inspect bridge0
- 创建一个日常排查用的 centros 容器
docker run -id --name test -h test --network my-bridge centos:8 /bin/bash
docker exec -it test /bin/bash
参考资料
docker Pipework配置宿主机和docker实例的IP在同一个网段
Docker 踩坑记 (一):CentOs7 配置不失效网桥,pipework 分配 IP 给 Docker 容器
Docker-Docker容器跨主机通信
Docker容器与宿主机同网段互相通信
Linux虚拟网络设备之bridge(桥)
网友评论