docker 容器互聯

2021-08-28 04:28:19 字數 2223 閱讀 7456

# docker容器之間,預設是可以互相連線的

# 當啟動兩個容器contain1, contain2

contain1: ping contain2_ip

contain2: ping contain1_ip

# 兩個是相互能ping通的

# 即使能夠互聯,但是,當我們重啟容器,或者重啟docker服務時

# 容器的ip就會發生變化,每次訪問都必須先進入其他容器查詢對應的ip

# 因此可以採用鏈結機制,讓docker服務自動維護,不需要重新查詢

docker run -i -t -d --name contain1 image_name bash

docker run -i -t --name contain2 --link=contain1:ping_test image_name bash

contain2:ping ping_test

# 此時是能夠ping通的

# 重啟docker服務

sudo service docker restart

docker restart cotnain1 contain2

contain2:ping ping_test

# 此時仍然能夠ping通

# 檢視ip配置

vim /etc/host

# 能夠ping_test維護了乙個ip位址,對應的就是contain1的ip位址

# 進入contain2

env# 能夠看出,特同時維護了contain1的對應ip

# 鏈結

docker --link=contain_name:aliash image_name

# --link能夠自動鏈結指定容器,docker自動管理對映,並自動更新變化ip

# contain_name : 鏈結容器名稱

# aliash : 容器別名

# 互聯原因

# docker 啟動時的 --icc 預設值為true,表示允許容器互聯

# 修改配置

vim /etc/default/docker

docker_opts=['--icc=false']

# 重啟docker服務

sudo service docker restart

# 此時,容器間就無法進行互聯

# 目前已經使用過了兩種命令(配置)

--icc

--link

# 對於一些容器,我們允許互聯,但是對於其他容器,我們禁止互聯

# 就必須採取一下配置辦法

--icc=true

--iptables=true

--link

# 1.修改配置

vim /etc/default/docker

docker_opts=['--icc=true --iptables=true']

# 重啟服務

sudo service docker restart

# 比如我們啟動三個容器contain1, contain2, contain3

docker run -d --name cotnain1 image_name bash

docker run -it --name contain2 image_name bash

docker run -it --name contain3 --link=contain1:ping_test image_name bash

# 此時能夠發現

contain2 -> contain1 # 不通

contain3 -> cintain1 # 通

# 也就是說,當採取了 --icc=true --iptables=true 設定時

# 只有設定了--link鏈結的容器能夠相互訪問

# 直接ip訪問已經被過濾掉了

# 具體資訊可以通過下面的方式檢視

iptables -l -n

# 當出現都訪問不了或者異常情況時

# 首先清空一下iptables

iptables -f

# 然後從起一下docker服務

sudo service docker restart

docker restart contain1 contain2 contain3

# 然後再檢視iptables

iptables -l -n

Docker 容器互聯

容器的連線 linking 系統是除了埠對映以外的另一種可以與容器中應用進行互動的方式。它會在源和接收容器之間建立乙個隧道,接收容器可以看到源容器指定的資訊。一 自定義容器命名 連線容器依據系統容器的名稱來執行,但自定義命名容器有兩個好處 使用 name標記可以為容器自定義命名 docker ps ...

Docker 容器互聯

可以指定容器繫結的網路位址,比如繫結 127.0.0.1。預設都是繫結 tcp 埠,如果要繫結 udp 埠,可以在埠後面加上 udp。docker port 命令可以讓我們快捷地檢視埠的繫結情況。docker port t1 當建立乙個容器的時候,docker 會自動對它進行命名。也可以使用 nam...

Docker容器互聯(六)

介紹在乙個宿主機中的多個容器之間的互聯 拒絕鏈結以及允許特定容器間的連線 docker預設同乙個宿主機中的容器是可以互相連通的。1 環境介紹使用centos映象建立容器,因centos是簡化版,沒有ifconfig命令,需要安裝。安裝net tools工具解決ifconfig yum y insta...