建立MySQL Docker容器


Docker容器化的最重要特性之一是它能夠建立一個封閉的環境來執行應用程式,其中包含所有必要的依賴項和已安裝的軟體包。大多數應用程式都需要後端資料庫來儲存資料點。Oracle提供用於在容器內執行MySQL的Docker映象,因此它成為測試資料庫應用程式的絕佳選擇。它提供輕量級的MySQL映象例項,並在測試完成後具有清理功能。

Docker允許您下載包含MySQL二進位制檔案和依賴項的映象,並建立一個虛擬檔案系統。請注意,如果您使用`--rm`標誌啟動Docker容器,則停止容器後,整個檔案系統以及容器例項將被刪除,因此將此標誌與`run`命令結合使用將為您提供測試應用程式的自動清理功能。

在本文中,我們將學習如何建立MySQL Docker容器來測試您的應用程式。

建立MySQL的Docker容器

以下命令建立最新版本的MySQL映象的例項,並且`--rm`標誌有助於在容器停止後消除容器及其檔案系統。

sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server

在上面的命令中,`--rm`標誌指示Docker守護程序在容器停止後刪除容器檔案系統。`--name`標誌為容器提供名稱。“`-e MYSQL_ALLOW_EMPTY_PASSWORD=yes`”指示容器建立空的root密碼。

執行MySQL Docker容器

MySQL客戶端程式使用本地套接字連線,即它們透過localhost連線。要建立本地MySQL連線,可以使用以下命令。

sudo docker exec −it mysql−test mysql −uroot

**exec**指令告訴Docker守護程序在Docker容器內執行指定的命令。`-it`標誌指示Docker以互動式shell開啟容器。在Docker容器內執行的shell命令是“`mysql -uroot`”。

使用TCP/IP的客戶端訪問

執行上一步的命令後,Docker會為Docker容器分配一個私有IP地址。它還會在您的系統上建立一個網路介面。這些可以用作建立到服務的TCP/IP連線的端點。

除非您在兩個端點之間建立TCP/IP連線,否則您無法訪問MySQL服務。為此,您需要找出系統和Docker容器例項的虛擬網路介面的IP地址。您可以使用以下命令來實現。

要查詢系統中網路介面的IP地址,請執行:

ip addr show docker0

使用上述命令獲得的IP地址將成為客戶端應用程式連線到的端點之一,您將使用它為MySQL建立使用者。

要查詢另一個端點(即MySQL的Docker容器例項的IP地址),可以使用此命令:

sudo docker mysql−test

使用這兩個IP地址,您現在可以繼續建立TCP/IP連線並建立使用者來執行您的客戶端應用程式。

要將您的本地系統設定為無需密碼的root使用者,可以使用以下命令。

在您的系統終端中,執行`mysql-test` Docker容器以訪問mysql shell。

sudo docker exec −it mysql−test mysql −uroot

一旦您可以訪問mysql shell,在其中執行此命令以將您的本地系統設定為root使用者。

create user root@<virtual network interface IP> identified by '';

請注意,上述命令中使用的IP地址應該是我們在前面步驟中找到的本地計算機虛擬網路介面的IP地址。

要授予上面建立的使用者所有訪問許可權,請使用此命令。

grant all on *.* to root@<virtual network interface IP> with grant option;

要完成所有測試後執行自動清理,您可以簡單地使用**stop**和**rm**命令停止並刪除容器。

總而言之,在本文中,我們討論瞭如何建立和啟動MySQL Docker容器,以及透過在Linux機器上的虛擬網路介面和Docker容器之間建立TCP/IP連線來訪問它。我們建立了root使用者並授予其所有訪問許可權。

更新於:2020年10月27日

434 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告