容器间通信方式 ############## 1. 通过容器ip访问 ================= :: 容器重启后,ip会发生变化。 通过容器ip访问不是一个好的方案。 2. 通过宿主机的ip:port访问 ========================== :: 通过宿主机的ip:port访问 只能依靠监听在暴露出的端口的进程来进行有限的通信。 3. 通过link建立连接(不推荐) =========================== :: 运行容器时,指定参数link, 使得源容器与被链接的容器可以进行相互通信,并且接受的容器可以获得源容器的一些数据 比如: 环境变量 命令:: # 源容器:mysql $ docker run -itd --name test-mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7 # 被链接容器 centos $ docker run -itd --name test-centos --link test-mysql:mysql centos /bin/bash # 进入test-centos $ docker exec -it test-centos /bin/bash 直接通过 link的名字或者link时候取的别名就能进入:: $ mysql -h test-mysql -uroot -proot mysql> ... $ mysql -h mysql -uroot -proot mysql> ... // 通过link建立连接的容器,被链接的容器能 ping 通源容器,反过来不行 与/etc/hosts中的主机条目不同,如果重新启动源容器,则不会自动更新存储在环境变量中的IP地址。我们建议使用主机条目 /etc/hosts 来解析链接容器的IP地址。除了环境变量之外,Docker还将源容器的主机条目添加到/etc/hosts文件中。 4. 通过 User-defined networks(推荐) =================================== 命令:: $ docker network create test-network 参考 ==== * docker 中容器之间通信方式: https://blog.csdn.net/u013355826/article/details/84987233