首頁  >  文章  >  運維  >  Docker中容器間的通訊方式有哪些

Docker中容器間的通訊方式有哪些

WBOY
WBOY原創
2022-02-07 10:38:1012900瀏覽

Docker中容器間的通訊方式:1、利用容器ip存取;2、利用宿主機的「ip:port」存取;3、利用link建立連線進行通訊;4、利用「User-defined networks」進行通訊。

Docker中容器間的通訊方式有哪些

本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。

Docker中容器間的通訊方式有哪些

1.透過容器ip存取

    容器重新啟動後,ip會發生變化。透過容器ip存取不是一個好的方案。

2.透過宿主機的ip:port存取

    透過宿主機的ip:port訪問,只能依靠監聽在暴露出的連接埠的進程來進行有限的通訊。

3.透過link建立連線(官方不建議使用)

     運作容器時,指定參數link,使得來源容器與被連結的容器可以進行相互通信,並且接受的容器可以獲得來源容器的一些數據,例如:環境變數。

# 源容器:mysql
docker run -itd --name test-mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#被链接容器 centos
docker run -itd --name test-centos --link test-mysql:mysql  centos /bin/bash
#进入test-centos
docker exec -it test-centos /bin/bash

直接透過link的名字或是link時候取的別名就能進入:

Docker中容器間的通訊方式有哪些

Docker中容器間的通訊方式有哪些

透過link建立連接的容器,被連結的容器能ping 通源容器,反過來不行。

在被連結的容器上查看環境變數

Docker中容器間的通訊方式有哪些

被連結容器會繼承來源容器的環境變數資訊。

與/etc/hosts中的主機項目不同,如果重新啟動來源容器,則不會自動更新儲存在環境變數中的IP位址。我們建議使用主機條目 /etc/hosts來解析連結容器的IP位址。

除了環境變數之外,Docker還將來源容器的主機項目加入/etc/hosts檔案中。

Docker中容器間的通訊方式有哪些

如果重新啟動來源容器,/etc/hosts連結容器上的檔案將使用來源容器的新IP位址自動更新,從而允許連結通訊繼續。

4.透過User-defined networks(推薦)

     docker network來建立一個橋接網絡,在docker run的時候將容器指定到新建立的橋接網絡中,這樣同一橋接網絡中的容器就可以透過互相存取。

建立網路

docker network create test-network

啟動容器時,加入已建立的網路

docker run -it --network test-network --network-alias mysql  -e MYSQL_ROOT_PASSWORD=123 mysql:5.7

啟動被連結的容器

 docker run -it --network test-network --network-alias centos  centos /bin/bash

Docker中容器間的通訊方式有哪些

推薦學習:《docker影片教學

#

以上是Docker中容器間的通訊方式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn