docker(六)容器间通信
容器之间可以通过IP Docker DNS Server 或joined容器三种方式通信
ip通信
从前面的例子可以得出一个结论:两个容器要能通信,必须有属于同一个网络的网卡 具体做法就是在容器创建的时候通过 --network 指定相应的网络 或者通过docker network connect 将现有的容器加入到指定的网络
#参考之前的rhel7-up和busybox的例子
##连接到网络
docekr network connect my-net my-nginx
将一个容器的容器 my-nginx连接到一个正在运行的网络 my-net上
#容器脱离网络
docker network disconnect my-net my-nginx
将容器my-nginx从网络my-net上断开连接。
Docker DNS Server
通过IP访问容器虽然满足了通信的需求,但是还是不够灵活,因为在部署应用之前可能无法确定IP 部署之后再指定要访问的IP会比较麻烦
对于这个问题,可以通过docker 自带的DNS服务解决
从docker1.10版本开始,docker daemon实现了一个内嵌的DNS server,使容器可以直接通过“容器名”通信,方法很简单,只要在启动时用 --name为容器命名就可以了
bridge模式
[root@server7 ~]# docker run -it --network=my_net2 --name=bbox1 busybox
/ # ping bbox2
PING bbox2