docker 默认只能node内部通讯
外包要访问docker可以做端口映射
两台主机间的docker是不能互相通信访问的
但是可以通过flannel网络做主机间docker互通
flannel配置
1.在要通信的主机上安装etcd,flannel,docker
2.yum install etcd,flannel,docker
3.etcd配置在2到3台服务器上
配置文件如下
ETCD_NAME=etcd03
ETCD_DATA_DIR="/var/lib/etcd/etcd03"
ETCD_LISTEN_PEER_URLS="http://192.168.1.10:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.10:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.10:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.1.13:2380,etcd02=http://192.168.1.12:2380,etcd03=http://192.168.1.10:2380"

4。配置flannel
dockre 跨主机通信flannel网络_第1张图片

5.添加flannel网路通信
6.在要互相的通信的主机上执行命令
etcdctl mk /atomic.io/network/config '{ "Network": "182.48.0.0/16" }'
7.重启docker
8.ip a 可以看到flanne 的网络配置
9.可以看到两个主机间的docker网络用的是182.48.0.0的网段
10.进入docker虚拟机后通过命令ping或者curl可以访问互相访问了