Docker(4)-容器互聯與端口映射


    容器互聯

    默認情況下,容器都是各自獨立運行,與世隔絕。

    Docker提供了一個名為docker0的虛擬網橋,它會為每個相連的容器分配一個虛擬子網。但是盡管容器都連在同一個虛擬網橋上,如果沒有額外的配置,它們還是不能夠相互通信。

    要將容器鏈接在一起,須按照以下步驟:

  1. 運行你希望被鏈接的容器,並用--name選項為它命名。
  2. 運行第二個容器,在docker run命令里運用--link選項並指定第一個容器的名字將其鏈接到第一個容器上。

    例如,我們啟動一個mysql的容器並鏈接到它,我們可以執行:

  1. docker run –d --name db mysql
  2. docker run –it --link db:db --name second-container ubuntu sh

    --link選項的值的格式為:想要鏈接到的容器的名字:為想要鏈接到的容器取的內部別名。別名可以任意取,主要用於網絡配置的解析。

 

    端口映射

    當我們想通過主機訪問在Docker容器上運行的服務時,我們可以使用docker run命令的-p選項來執行端口映射。

    例如,我們要通過訪問Docker主機上的8080端口,訪問在容器中運行在80端口上的Web服務器,我們可以使用以下命令進行端口映射:

docker run -d -p 8080:80 --name webserver apache

    我們可以通過下列命令查找映射的端口:

  • docker port
  • docker ps 

    我們還可以使用具有EXPOSE指令的Dockerfile和docker run命令的-P選項將容器上的端口公開到外面。 這將在后面的文章中討論。

 

    如果我們想要docker client連接到遠程主機的docker daemon以便在本地執行遠端docker命令,可以使用-H選項並跟上IP地址和端口。

    Note:docker daemon默認端口為2375

docker -H 192.168.56.50:2375 –d &

    或者我們可以設置DOCKER_HOST變量:

export DOCKER_HOST="tcp://192.168.56.50:2375"

    將docker client重新連回本地:

export DOCKER_HOST=

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM