同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地址来通信,也可以通过宿主机的ip加上容器暴露出的端口号来通信,前者会导致ip地址的硬编码,不方便迁移,并且容器重启后ip地址会改变,除非使用固定的ip,后者的通信方式比较单一,只能依靠监听在暴露出的端口的进程来进行有限的通信。通过docker的link机制可以通过一个name来和另一个容器通信,link机制方便了容器去发现其它的容器并且可以安全的传递一些连接信息给其它的容器。其使用方式如下:
运行一个容器,通过–name指定一个便于记忆的名字,这个容器被称为source container,也就是要连接的容器
docker run --name mysql -d mysql:db
运行另外一个容器,并link到上面启动的容器,这个容器被称为received container
docker run --name web --link mysql:db -d tomcat
完成了上面的两个步骤后,在tomcat的容器中就可以使用mysql或者db作为连接地址来连接mysql服务,即使容器重启了,地址发生了变化,不会影响两个容器之间的连接。