Docker 容器之间互相通信的方式

2024 年 9 月 22 日 星期日(已编辑)
/
16
摘要
docker 容器之间互相访问
这篇文章上次修改于 2024 年 9 月 22 日 星期日,可能部分内容已经不适用,如有疑问可询问作者。

Docker 容器之间互相通信的方式

容器之间互相通信,可以适用于以下场景:

  1. 容器之间发送 http(s) 请求
  2. 多个服务之间互相通信(springboot 之间,springboot 和 mysql 之间等)

虚拟 ip 访问

  1. 使用 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id/container-name> 查看容器的虚拟 ip
  2. 直接访问 ip 即可(ping ip,或者 http://ip:port

运行容器的时候加上参数 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> 访问成功

  1. 创建一个 network:docker network create mynetwork
  2. 运行容器时,加入 network
    1. docker run -it --name app1 --network mynetwork centos:latest
    2. docker run -it --name app2 --network mynetwork centos:latest
  3. 两个容器通过 ping <container-name> / http://<container-name>:port 即可访问成功
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...