docker容器互联
link方式
http://blog.csdn.net/halcyonbaby/article/details/42112325
通過(guò)link方式創(chuàng)建容器,然后我們可以使用被link容器的別名進(jìn)行訪問(wèn)。
從而解除應(yīng)用對(duì)IP的依賴。
不幸的是,link方式只能解決單機(jī)容器間的互聯(lián)。多機(jī)情況下,容器的互聯(lián)需要其他的方式。
[root@localhost ~]# docker run -i -t mysql:latest /bin/bash
root@7afad07a05b0:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
79: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ffinet 172.17.0.4/16 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::42:acff:fe11:4/64 scope linkvalid_lft forever preferred_lft forever[root@localhost ~]# docker run -i -t --link=sad_bardeen:sql mysql:latest /bin/bash
root@931c7ab8135e:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
81: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 02:42:ac:11:00:05 brd ff:ff:ff:ff:ff:ffinet 172.17.0.5/16 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::42:acff:fe11:5/64 scope linkvalid_lft forever preferred_lft forever
root@931c7ab8135e:/usr/local/mysql# ping sql
PING sql (172.17.0.4): 48 data bytes
56 bytes from 172.17.0.4: icmp_seq=0 ttl=64 time=0.114 ms
###可以看出來(lái),加了一個(gè)靜態(tài)dns
root@931c7ab8135e:/usr/local/mysql# cat /etc/hosts
172.17.0.5 931c7ab8135e
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 sql
通過(guò)容器方式互聯(lián)
如上面所說(shuō),link只適用于一臺(tái)主機(jī)。
兩臺(tái)主機(jī),docker官方推薦了如下方式連接兩個(gè)容器。
以下以wordpress+mysql的服務(wù)為例。部署在兩臺(tái)機(jī)器上的wordpress和mysql通過(guò)一對(duì)ambassador進(jìn)行連接。
wordpress(in vm1)--link-->ambassador1(in vm1)----socat--->ambassador2(in vm2)--link--->mysql(in vm2)
啟動(dòng)mysql:
sudo docker run -d --name mysql mysql
啟動(dòng)ambassador1:
sudo docker run -d --link mysql:mysql --name ambassador1 -p 3306:3306 ambassador
啟動(dòng)ambassador2:
sudo docker run -d --name ambassador2 --expose 3306 -e MYSQL_PORT_3306_TCP=tcp://x.x.x.x:3306 ambassador
啟動(dòng)wordpress:
sudo docker run -i -t --rm --link ambassador2:mysql wordpress
參考:
http://blog.csdn.net/sunset108/article/details/40856957
轉(zhuǎn)載于:https://www.cnblogs.com/antis/p/5287179.html
總結(jié)
以上是生活随笔為你收集整理的docker容器互联的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 回帖怎么突然需要审核?
- 下一篇: 找一部动画电影