docker 跨主機通訊 virtualbox

2021-08-12 00:13:40 字數 2689 閱讀 7172

win7 + centos7 +docker 1.12

方案1:virtualbox設定雙網絡卡(全部是hosty-only)

1. 設定虛擬網絡卡(enp0s8:192.168.64.0/24    enp0s9: 192.168.152.0/24)

host1/enp0s9:192.168.152.3    br0:192.168.11.2

host2/enp0s9:192.168.152.4    br0:192.168.10.2

2. 新增網橋(host1)

cd /etc/sysconfig/network-scripts/  

vi ifcfg-br0

type=bridge

device=br0

bootproto=static

onboot=yes

ipaddr=192.168.11.2

netmask=255.255.255.0

gateway=192.168.11.1

dns1=114.114.114.114

3. 設定網絡卡enp0s8

cd /etc/sysconfig/network-scripts/  

vi ifcfg-enp0s8

type=ethernet

bootproto=none

#defroute=yes

#peerdns=yes

#peerroutes=yes

#ipv4_failure_fatal=no

#ipv6init=yes

#ipv6_autoconf=yes

#ipv6_defroute=yes

#ipv6_peerdns=yes

#ipv6_peerroutes=yes

#ipv6_failure_fatal=no

name=enp0s8

#uuid=fd5ef4de-63f7-47bd-9a26-10acbaaa3ffe

device=enp0s8

onboot=yes

bridge=br0

4.reboot & ifconfig

5.修改docker檔案

vi /etc/sysconfig/docker-network

docker_network_options="-b=br0 --fixed-cidr='192.168.11.128/26' "

6.執行systemctl daemon-reload & service docker restart

7. 啟動容器 docker run -d -p --name redis docker.io/redis

8. 檢視docker inspect redis,容器的ip 192.168.11.128

9. 重複2-8,設定host2

不同點1

type=bridge

device=br0

bootproto=static

onboot=yes

ipaddr=192.168.10.2

netmask=255.255.255.0

gateway=192.168.10.1

dns1=114.114.114.114

不同點2

docker_network_options="-b=br0 --fixed-cidr='192.168.10.64/26' "

10.啟動第二個機器,獲得容器位址為192.168.10.128

11.在第一台機器ping 192.168.10.128 , 發現ping不通。需要加route

12.通過第二個網絡卡,新增路由

ip route add 192.168.10.0/24 via 192.168.152.4 dev enp0s9  (host1)

ip route add 192.168.11.0/24 via 192.168.152.3 dev enp0s9  (host2)

方案2: 利用docker network命令,只需要1個網絡卡

1. 建立network

host1:   docker network create --subnet=192.168.99.0/24 --ip-range=192.168.99.64/26 br2

host2:   docker network create --subnet=192.168.88.0/24 --ip-range=192.168.88.64/26 br2

2. 啟動容器

host1:docker run -d -p --net=br2 --name=redis2 docker.io/redis                     192.168.99.65

host2 :docker run -d -p --net=br2 --name=redis2 docker.io/redis                      192.168.88.65

3.新增路由

host1:ip route add 192.168.88.65 via 192.168.152.4 dev enp0s9

host2:ip route add 192.168.99.65 via 192.168.152.3 dev enp0s9

4. host1:  ping 192.168.88.65 ok

docker exec -it /redis2 /bin/bash

ping 192.168.88.65 ok

Docker跨主機通訊

已安裝zookeeper。這裡使用前面mesos裡的zookeeper配置 sudo vi etc default docker etc default docker內容 docker add opts h tcp h unix var run docker.sock cluster store z...

Docker 跨主機通訊

修改主機docker預設的虛擬網段,然後在各自主機上分別把對方的docker網段加入到路由表中,配合iptables即可實現docker容器誇主機通訊。配置方法如下 設有三颱虛擬機器 更改虛擬機器docker0網段,v1為172.17.1.1 24,v2為172.17.2.1 24,v3為172.1...

Docker容器跨主機通訊

兩台主機上的docker容器直接通過ip位址進行通訊 各項配置如下 docker version 1.13.1 ip資訊根據個人需求部署 主機1的ip位址為 192.168.1.128 主機2的ip位址為 192.168.1.129 為主機1上的docker容器分配的子網 172.17.1.0 24...