Dcoker跨主機容器通訊之overlay

2022-02-25 00:53:59 字數 3365 閱讀 9272

同樣是兩台伺服器:

準備工作: 

設定容器的主機名

consul:kv型別的儲存資料庫(key:value)

docker01、02上:

vim /etc/docker/daemon.json

vim /etc/docker/daemon.json

vim /usr/lib/systemd/system/docker.service

execstart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock 這行改成這樣,兩台的都要改

systemctl daemon-reload

systemctl restart docker

docker01上: 

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap  這條命令在設定容器的主機名之後做

[root@docker1 centos_zabbix]# docker images

repository tag image id created size

10.0.0.11:5000/kode v2 6914fda5fd44 4 hours ago 502mb

kode v2 6914fda5fd44 4 hours ago 502mb

10.0.0.11:5000/centos6.9_nginx_ssh v3 92b1087df3f5 13 hours ago 431mb

centos6.9_nginx_ssh v3 92b1087df3f5 13 hours ago 431mb

centos6.9_nginx_ssh v2 6307e23ee16d 13 hours ago 431mb

b94c822488f9 13 hours ago 431mb

centos6.9_nginx_ssh v1 f01eeebf918a 13 hours ago 431mb

54167f1d659b 13 hours ago 431mb

71474e616504 13 hours ago 430mb

centos6.9_ssh v2 03387f99f022 14 hours ago 307mb

82d0e9ce844b 14 hours ago 195mb

kode v1 c0f486ac58fe 15 hours ago 536mb

progrium/consul latest 09ea64205e55 4 years ago 69.4mb 這裡有了

[root@docker1 centos_zabbix]# docker ps -a

container id image command created status ports names

1016753ee64d progrium/consul "/bin/start -server …" 4 minutes ago exited (255) 3 minutes ago 53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp consul

最後在頁面上訪問:

2)建立overlay網路

docker network create -d overlay --subnet 172.16.1.0/24 --gateway 172.16.1.254 ol1  這個網段不能和宿主機上相同,並且隨便在一台上執行這個命令即可
檢視容器的網路,有沒有出現overlay

[root@docker1 shell]# docker network ls

network id name driver scope

e480a4fe5f4b bridge bridge local

0a3cbfe2473f host host local

4e5ccdc657e1 macvlan_1 macvlan local

aab77f02a0b1 none null local

8ae111afded7 ol1 overlay global

3)啟動容器測試

一台上:

docker run -it --network ol1 --name test01 centos6.9_ssh:v2 /bin/bash

另外一台上:

docker run -it --network ol1 --name test02 centos6.9_ssh:v2 /bin/bash

之後可以通過test01和test02之間聯通

真實原理:

容器跨主機通訊之NAT

nat分為dnat和snat,更多看 預設情況下,容器可以主動訪問到外部網路的連線,但是外部網路無法訪問到容器。1,container outside 容器所有到外部網路的連線,源位址都會被nat成本地系統的ip位址。這是使用 iptables 的源位址偽裝操作實現的。sudo iptables t...

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...

docker跨主機容器通訊

docker 網路模式詳解 路由器位址192.168.1.1用route n檢視 parent enp7s0的乙太網名用ifcofig查詢 apt install net tools iputils ping ydocker network create driver macvlan subnet ...