同一台宿主机,容器间怎么通信?不同的宿主机,容器间怎么通信?

已邀请:

CMGS - Ghost like

赞同来自: yaoguo liyangyang sealinger


看来要祭出神图了。。。

QQ图片20150630232527.png


当然我们选的是 macvlan,图简单和性能

tifayuki - Tutum 工程师

赞同来自: timor快快跑 itbj00


overlay network,比如weave什么的。
目前tutum的做法是,每当有一个新德container运行,tutum会为其分配一个私有IP地址,然后把该container加入到已有的weave network中。这样,即使两个container处于不同的机器上,甚至不同的网络上,他们之前还是可以直接通过所分配的私有IP地址来访问。

leoanrd

赞同来自: itbj00


一点尝试~下载附件后后缀名改为.pdf

Georce - Hadoop集群、云计算平台攻城师

赞同来自: sealinger


http://dockone.io/article/466

上面的统统跑开,不看书不看报,不看dockone!!!

xds2000 - 数人科技CTO

赞同来自:


主机共享一个bridge,所以直接可以通信。
dxiao at dhcp-140-191 in ~
$ docker run -it busybox bash
exec: "bash": executable file not found in $PATH2014/11/28 16:13:11 Error response from daemon: Cannot start container 904446666ad4d2c52b20523878e5b532d00f7074991f6d74898470b3653376a5: exec: "bash": executable file not found in $PATH
dxiao at dhcp-140-191 in ~
$ docker run -it busybox sh
/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
Segmentation fault

dxiao at dhcp-140-191 in ~/Documents/dotfiles on master*
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3fc92c5ffea5        busybox:latest      "sh"                2 days ago          Up About a minute                       compassionate_poincare
f50d34fc7bf2        busybox:latest      "sh"                2 days ago          Up About a minute                       compassionate_lovelace
dxiao at dhcp-140-191 in ~/Documents/dotfiles on master*
$ dip 3fc92c5ffea5
172.17.0.174
dxiao at dhcp-140-191 in ~/Documents/dotfiles on master*
$ dip f50d34fc7bf2
172.17.0.173

/ # ping 172.17.0.174
PING 172.17.0.174 (172.17.0.174): 56 data bytes
64 bytes from 172.17.0.174: seq=0 ttl=64 time=0.125 ms
64 bytes from 172.17.0.174: seq=1 ttl=64 time=0.083 ms
^C
--- 172.17.0.174 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.083/0.104/0.125 ms
/ # ping 172.17.0.173
PING 172.17.0.173 (172.17.0.173): 56 data bytes
64 bytes from 172.17.0.173: seq=0 ttl=64 time=0.118 ms
64 bytes from 172.17.0.173: seq=1 ttl=64 time=0.226 ms

houyy

赞同来自:


这是容器在同一台宿主机上的情况吧,容器在不同的宿主机呢?

shlallen - DaoCloud软件工程师,合伙人

赞同来自:


如果有两台不同的宿主机,各自上都装有docker daemon,那么只能保证每台宿主机上的容器可以通信,不同宿主机上的容器靠当前情况不能实现通信。

这也是目前docker container不能跨host宿主机通信的问题。

但是借助第三方工具,则可以完成跨host宿主机进行通信,试用kubernetes,maestro等工具可以做到。其中试用的方式,我目前能理解的有试用NAT端口映射,另外也可以直接使用openvswitch打通二层网络。

但是目前还没有公认的一劳永逸的方案。

wencan - IT杂工

赞同来自:


--net host 直接利用主机的网络

yaoguo

赞同来自:


应该说仅靠docker的话,跨host目前是没法直接跨host访问container ip的,但是用hostip+port还是可以的

要回复问题请先登录注册