官术网_书友最值得收藏!

1.10 容器互聯

【必知必會】配置多個容器如何互相連接?

有時我們需要多個應用共同工作才能對外提供服務,比如使用WordPress和MySQL兩個應用才能搭建博客。WordPress需要連接到MySQL上,這樣就需要兩個容器,此時就需要將WordPress容器連接到MySQL容器上。

1.10.1 方法1:通過容器IP的方式訪問

前面在實戰練習里已經創建了一個名稱為db的容器,IP為172.17.0.2且里面有一個數據庫叫作blog。

下面使用WordPress鏡像創建一個容器,此容器需要連接到MySQL上。

這個容器需要使用的變量如下。

(1)WORDPRESS_DB_HOST:用來指定MySQL服務器的地址。

(2)WORDPRESS_DB_USER:用來指定登錄MySQL的用戶名。

(3)WORDPRESS_DB_PASSWORD:用來指定登錄MySQL的密碼。

(4)WORDPRESS_DB_DATABASE:用來指定需要的數據庫。

第1步 創建WordPress容器,并把端口發布出去,使得外界的主機能訪問。

這里通過變量WORDPRESS_DB_HOST指定了MySQL服務器的地址。

第2步 在瀏覽器里訪問頁面。

在地址欄里輸入192.168.26.100,如圖1-21所示。

選擇“Chinese”選項,單擊“Continue”按鈕,進入圖1-22所示的頁面。

圖1-21 訪問WordPress容器(1)

圖1-22 訪問WordPress容器(2)

并沒有要求輸入數據庫的信息,因為它已經可以自動連接到數據庫了。

第3步 刪除blog這個容器。

這種方法有個問題,就是如果db容器出問題而重新生成時,IP可能會發生改變,那么WordPress就連接不上了。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。

1.10.2 方法2:使用link的方式

在創建容器時,--link選項的用法如下。

后續需要引用此容器名時,直接寫別名即可。

這種--link用法在nerdctl里無法使用,所以下面的練習只在vms100上操作。

第1步 再次創建WordPress容器。

這里創建名稱為blog的容器,使用--link連接到名稱為db的容器,起別名為mysqlxx,在WORDPRESS_DB_HOST這個變量里不再寫db的IP了,而是直接寫別名mysqlxx,此時blog正常運行,且能訪問到數據庫,如圖1-23所示。

圖1-23 訪問WordPress容器(3)

注意

--link里容器的別名是可以隨意起的。

但是,這個命令還是過于復雜,可以進一步簡化。剛才介紹了WordPress鏡像所使用的變量,現在來看它們的默認值。

(1)WORDPRESS_DB_HOST:默認連接到別名為mysql的容器。

(2)WORDPRESS_DB_USER:默認為root。

(3)WORDPRESS_DB_PASSWORD:默認為MySQL容器里的root所使用的密碼。

(4)WORDPRESS_DB_DATABAASE:默認為名稱為wordpress的庫。

所以,如果我們創建MySQL容器,指定一個數據庫是wordpress而不是blog,則上面的選項都可以不寫。

第2步 刪除db和blog容器。

第3步 創建一個MySQL容器。

在這個MySQL容器里,通過變量MYSQL_DATABASE創建一個名稱為wordpress的庫。在WordPress容器里如果沒有指定使用MySQL里的哪個庫,則默認使用的是名稱為wordpress的庫。

第4步 創建一個WordPress容器,所有變量均使用默認值。

這里別名使用的是mysql,WORDPRESS_DB_HOST默認會連接別名為mysql的容器,這里創建WordPress容器的選項很少,因為都是使用的默認值。

(1)WORDPRESS_DB_USER:使用的是root用戶。

(2)WORDPRESS_DB_PASSWORD:使用的是別名為mysql這個容器里MYSQL_ROOT_PASSWORD的值。

(3)WORDPRESS_DB_NAME:默認使用wordpress庫。

在瀏覽器里測試,如圖1-23所示。

雖然在創建WordPress容器時沒有指定太多MySQL的信息,但依然能跳過數據庫的設置,說明WordPress容器是正確連接到數據庫了。

自行刪除這兩個容器。

主站蜘蛛池模板: 阿巴嘎旗| 密云县| 左权县| 区。| 梧州市| 锦屏县| 灯塔市| 南昌县| 漳平市| 广饶县| 林甸县| 凤台县| 孝昌县| 临桂县| 宜都市| 会东县| 霍邱县| 淮北市| 皮山县| 张家界市| 宜昌市| 南靖县| 武山县| 龙南县| 青海省| 乾安县| 鹤庆县| 霍邱县| 延边| 贞丰县| 平湖市| 中山市| 涞源县| 阳东县| 大关县| 宜兰县| 古田县| 华宁县| 哈密市| 论坛| 珠海市|