Docker 容器之间互相通信的方式
容器之间互相通信,可以适用于以下场景:
- 容器之间发送 http(s) 请求
- 多个服务之间互相通信(springboot 之间,springboot 和 mysql 之间等)
虚拟 ip 访问
- 使用
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id/container-name>
查看容器的虚拟 ip - 直接访问 ip 即可(
ping ip
,或者http://ip:port
)
link 连接
运行容器的时候加上参数 link
运行第一个容器
docker run -it --name app1 centos:latest
运行第二个容器
docker run -it --name app2 --link app1:link1app centos:latest
- 命令:
--link param1:param2
param1
是要连接的容器名param2
是要通信的别名
最后通过 ping link1app
/ http://link1app:port
即可访问成功
network 连接
ps:使多个容器在同一个 network 下即可通过 <container-name> 访问成功
- 创建一个 network:
docker network create mynetwork
- 运行容器时,加入 network
docker run -it --name app1 --network mynetwork centos:latest
docker run -it --name app2 --network mynetwork centos:latest
- 两个容器通过
ping <container-name>
/http://<container-name>:port
即可访问成功