四、容器間的通信

一、容器之間的單向通信(–link)

在這裏插入圖片描述

1.創建tomcat容器,命名爲web:
在這裏插入圖片描述

2.創建數據庫容器,命名爲database:
在這裏插入圖片描述

3.查看容器原始配置:docker inspect 29902265ebb2
在這裏插入圖片描述
在這裏插入圖片描述

4.進入tomcat容器,ping數據庫容器:docker exec -it 21e82183587d /bin/bash
在這裏插入圖片描述

容器間可以直接使用ip地址進行通信,無法使用容器名進行通信。

5.刪除tomcat容器,重新創建web容器,指定通信容器:
docker run -d --name web --link database tomcat
在這裏插入圖片描述

6.進入tomcat容器內部,根據容器名通信:
在這裏插入圖片描述

通過容器名通信,有利於容器間的維護,容器間不需要關注容器內部,無論通信容器內部環境是否變化,根據容器名進行訪問的請求方不需要改變。

二、Bridge網橋雙向通信

在這裏插入圖片描述

1.重新創建web和database容器:
在這裏插入圖片描述

2.列出當前docker網絡服務的明細:docker network ls
在這裏插入圖片描述

3.創建指定網絡服務的類型(bridge)和ing從my-bridge:
docker network create -d bridge my-bridge
在這裏插入圖片描述

4.將網絡服務連接容器:
docker network connect my-bridge web
docker network connect my-bridge database
在這裏插入圖片描述

5.進入database容器內部,使用web容器名進行容器間通信:
在這裏插入圖片描述

6.進入web容器內部,使用database容器名進行容器間通信:
在這裏插入圖片描述

網橋實現原理:
在這裏插入圖片描述

在容器內部創建一個虛擬網卡,容器間通過綁定虛擬網卡進行通信。物理網卡通過地址轉換請求虛擬網卡,實現容器外部通信。

三、Volume容器間共享數據

在這裏插入圖片描述

通過Volume實現多個容器之間共享文件,部署集羣時有利於維護:
在這裏插入圖片描述

1.通過設置-v掛載宿主機目錄

  • docker run --name 容器名 -v 宿主機路徑:容器內掛載路徑 鏡像名
  • 實例:docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat

通過-v參數設置掛載路徑必須保證每次輸入的路徑都正確,否則掛載失敗,容錯率低。

2.通過–volumes-from共享容器內掛載點

  • 創建共享容器:docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true
    說明:/bin/true相當於一個佔位符,沒有其他含義
  • 共享容器掛載點:docker run --volumes-from webapps --name t1 -d tomcat
Volume示例
  • -v掛載宿主機目錄
    1.上傳共享文件:
    在這裏插入圖片描述

2.創建tomcat容器t1,通過-v掛載宿主機目錄
docker run --name t1 -p 8000:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat
在這裏插入圖片描述

3.瀏覽器訪問頁面:
在這裏插入圖片描述

4.進入容器查看掛載的文件:
在這裏插入圖片描述

5.創建第二個tomcat容器t2:
docker run --name t2 -p 8001:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat

在這裏插入圖片描述

6.訪問第二個tomcat容器:
在這裏插入圖片描述

7.進入宿主機共享文件目錄,編輯index.html:
在這裏插入圖片描述

8.修改index.html:
在這裏插入圖片描述

9.訪問瀏覽器:
在這裏插入圖片描述

  • 共享容器
    1.創建共享容器:
    docker create --name webpage -v /usr/webapps:/usr/local/tomcat/webapps tomcat /bin/bash
    在這裏插入圖片描述

2.創建tomcat容器,共享容器掛載點:
在這裏插入圖片描述

3.瀏覽器訪問:
在這裏插入圖片描述