出发点
本文中笔者记录了实现Docker容器间单向通信和双向通信用到的指令和示例代码。
单向通信
在启动容器时,--link database 声明了对database 容器的网络通路进行打通。
# 启动Docker服务
service docker start
# 启动database容器 模拟数据库服务
docker run -d --name database -it centos /bin/bash
# 启动webservice容器 模拟需要依赖数据库的web服务
docker run -d --name webservice --link database tomcat
# 进入到webservice容器内
docker exec -it 17afd3d3f7b4 /bin/bash
# 测试连通 database
ping database
# 可以通过inspect查看 容器的虚拟ip地址
docker inspect 17afd3d3f7b4
双向通信
需要通过添加网桥和宿主机虚拟网卡的方式实现。
# 查看当前docker的网络服务, 默认会有一个bridge 网桥,作用时使容器能够访问外网
docker network ls
# 删除老的webservice服务
docker rm -f b5849ed5a0b8
# 创建新的webserver服务
docker run -d -it --name webserver centos /bin/bash
# 添加新的网桥
docker network create -d bridge my-bridge
# 依次将webserver 和 database添加到网桥 my-bridge 中
docker network connect my-bridge database
docker network connect my-bridge webserver
# 进入到两个容器中测试互联通信吧
docker exec -it 1fb8dfc42f41 /bin/bash
docker exec -it ba99532b35ac /bin/bash