docker容器--link参数介绍

docker容器--link参数介绍

目录

  • link 参数作用
  • 命令格式
  • link原理
  • 测试案例
  • link参数注意事项

link 参数作用

同一个宿主主机上的多个docker容器之间如果需要进行通信,第一种最容易想到的方式就是使用容器自身的ip地址、宿主主机的ip+容器暴露出的端口号来通信,我们知道默认情况下docker重新run后,对应的IP地址就会改变,这样如果两个容器之间通信就会变得非常麻烦,每次都要修改通信的IP地址。这个时候 --link参数就派上大用场了,它会给要链接的容器设定一个通信的别名,即使重启后IP地址发生了改变,依然可以正常通信。

命令格式

docker run -d --name myname--link toname:alisname -p 本地端口:容器端口 镜像名称

参数说明:

  • -- name :新容器名称
  • -- link :目标容器名称:别名
  • -p : 本地端口:容器端口

link原理

--link 的原理就是在 /etc/hosts 里面添加了一个alias的名称

测试案例

首先启动一个tomcat01的容器 :

docker run -itd --name tomcat01 -p 8100:8080 tomcat:8.5.38

docker ps 获取容器的id d92f947ea54f

获取单个容器 ip :

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' d92f947ea54f

启动一个nginx容器设置与tomcat01连通:

docker run -itd --name nginx01 --link tomcat01 nginx

进入容器内部查看 etc/hosts配置文件 :

docker exec -it nginx01 /bin/bash #进入容器内部
apt update && apt install -y iproute2 # 安装ping命令
cat /etc/hosts #查看配置文件
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4      tomcat01 d92f947ea54f