Docker學習④

端口映射與容器互聯

Docker除了通過網絡訪問外,還提供了兩個很方便的功能來滿足服務訪問的基本需求:

  1. 允許映射容器內應用的服務端口到本地宿主主機;
  2. 互聯機制實現多個容器間通過容器名來快速訪問;

 

端口映射實現容器訪問

 

1、從外部訪問容器應用

當容器中運行一些網絡應用,要讓外部訪問這些應用時,可以用過-P或-p參數來指定端口映射。當使用-P標記時,Docker會隨機映射一個49000~49900的端口到內部容器開放的網絡端口:

此時可以看到,本地主機的5000被映射到了容器的5000端口。訪問宿主主機的5000端口即可訪問容器內應用提供的界面。

具體的應用實例可參考:

 

2、映射所有接口地址

 

3、映射到指定地址的指定端口

 

4、映射到指定地址的任意端口

 

5、查看映射端口配置

 

互聯機制實現便捷互訪

容器的互聯是一種讓多個容器中的應用進行快速交互的方式。它會在源和接收容器之間創建連接關係,接收容器可以通過容器名快速訪問到源容器,而不用指定具體的IP地址。

 

1、自定義容器命名

連接系統依據容器的名稱來執行。自定義命名容器有兩個好處:

  1. 自定義的命名,比較好記,比如一個Web應用容器我們可以給它起名web,一目瞭然;
  2. 當要連接其他容器時候(即便重啓),也可以使用容器名而不用改變,比如連接web容器到db容器;

例:使用--name標記可以爲容器自定義命名

【注】

  1. 在執行docker [container] run的時候如果添加--rm標誌,則容器在終止後會立刻刪除;
  2. 同時,--rm-d參數不能同時使用;

 

2、容器互聯

使用--link參數可以讓容器之間安全地進行交互。

例:首先創建一個新的數據庫容器

刪除之前創建的web容器

然後創建一個新的web容器,並將它連接到db容器

【注】

--link參數的格式爲:
--link name:alias

name:鏈接的容器的名稱
alias:別名

Docker相當於在兩個互聯的容器之間創建了一個虛機通道,而且不用映射它們的端口到宿主主機上。在啓動db容器的時候並沒有使用-p和-P標記,從而避免了暴露數據庫服務端口到外部網絡上。

Docker通過兩種方式爲容器公開連接信息:

  1. 更新環境變量;
  2. 更新/etc/hosts文件;

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章