通過Docker部署執行MariaDB資料庫

通過Docker部署執行MariaDB資料庫

MariaDB是一個免費的資料庫伺服器,使用結構化查詢語言(SQL)提供資料訪問。它提供了密碼、基於角色的訪問控制等安全功能來保護你的資料。

為了部署MariaDB並向使用者授予資料訪問權,你需要託管資料庫伺服器。你可以選擇雲供應商或使用託管或共享主機服務。

本文將教你如何使用Docker容器執行MariaDB,配置和執行資料庫伺服器,並將其連線到WordPress網站。

  1. 什麼是Docker?
  2. 如何使用Docker部署MariaDB
  3. 在你的WordPress網站上新增一個新的文章
  4. 通過DevKinsta管理MariaDB和Docker

什麼是Docker?

Docker是一個免費的開發工具,使你能夠在一個稱為容器的受控環境中執行應用程式。容器有應用程式程式碼、依賴性和執行應用程式的關鍵系統工具。這使你能夠在整個軟體開發生命週期內提供強大的應用程式。

通常情況下,容器使用你的作業系統作為主機。這意味著主機的核心提供對CPU、記憶體和檔案系統等資源的訪問。因此,這不需要像虛擬機器那樣的傳統虛擬化。使用Docker來執行MariaDB例項有幾個優點。

  • 它的數字足跡小,保證了系統資源的有效利用。
  • 它是一致的,允許開發人員在生產和測試部署中執行應用程式,只需最小的變化。
  • 它為資源共享提供了一個靈活的機制。
  • 它是可擴充套件的–你可以在一臺主機上執行許多容器。

如何使用Docker部署MariaDB

在本節中,你將使用Docker建立容器化環境來執行MariaDB。你將瞭解到Docker所提供的容器技術。Docker可以在大多數版本的Windows、macOS和Linux發行版上執行。在本教程中,你需要有Windows 10/11、Ubuntu 20.04或macOS X機器來跟隨。

1. 安裝Docker

Docker的最大特點之一是它的可移植性。它使用主機的作業系統,使其成為測試和釋出環境的理想選擇。本節將教你如何在三個作業系統上安裝Docker。

Ubuntu 20.04

首先,更新Ubuntu的軟體包列表。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update
sudo apt-get update
sudo apt-get update

然後,允許通過HTTPS訪問線上儲存庫。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

新增Docker的GPG金鑰

接下來,新增Docker的GPG金鑰

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

現在,新增Docker的儲存庫。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
echo deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
echo deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

然後,更新Ubuntu的軟體包以包括Docker的倉庫。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update
sudo apt-get update
sudo apt-get update

最後,安裝Docker引擎。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get install docker-ce
sudo apt-get install docker-ce
sudo apt-get install docker-ce

如果你使用的是不同的Linux發行版,如Debian或Fedora,請遵循在Linux中安裝Docker的官方文件。

Windows 10/11

Docker可以在Windows 10或11上使用Windows Subsystem for Linux版本2(WSL 2)作為後端。使用以下步驟來安裝Docker。

首先,在你的Windows系統上啟用虛擬機器平臺功能。這使你能夠安裝WSL 2,並在你的Windows機器上安裝和執行一個虛擬化的Linux例項。

接下來,安裝WSL

然後,訪問微軟商店,下載Ubuntu 20.04。

最後,下載Docker Desktop for Windows。開啟下載的檔案,啟動安裝過程。

安裝完成後,從你的工作列中搜尋 “Docker Desktop “並開啟它。

(注意:你需要使用PowerShell作為你的終端來使用Docker命令。)

macOS X

Docker可以通過蘋果應用商店在macOS機器上使用。有兩種針對英特爾蘋果晶片的安裝程式可用。

首先,從上面的一個連結中下載相應的安裝程式。然後,雙擊以開啟下載的.dmg檔案。

接下來,將Docker圖示拖放到應用程式資料夾中。

現在,從應用程式資料夾中開啟Docker應用程式,按照提示完成配置。

一旦安裝過程完成,雙擊桌面狀態列中的Docker圖示,即可開啟它。

使用預設的終端來執行Docker命令。

2. 下載MariaDB映象

Docker映象提供了一個命令和配置的集合,以建立一個Docker容器。它負責安裝執行一個應用程式所需的一切。你可以從Docker Hub找到MariaDB的官方映象。

要從Docker Hub下載MariaDB的映象,你需要使用 docker pull 命令。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker pull mariadb
docker pull mariadb
docker pull mariadb

你也可以通過執行以下內容檢視已下載的Docker映象的列表。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker images
docker images
docker images

這是命令的輸出。

列出Docker映象

列出Docker映象

3. 建立一個容器

容器是一個軟體單元,具有執行一個程序或程式所需的所有程式碼、依賴性和系統工具。你將使用之前下載的映象來建立一個MariaDB容器。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker create mariadb --name mariadb-wp -i –t
docker create mariadb --name mariadb-wp -i –t
docker create mariadb --name mariadb-wp -i –t

這將建立一個名為 mariadb-wp的MariaDB容器。–i 標誌允許一個互動式會話,而–t 選項則建立一個偽終端。官方文件提供了關於所有可用變數的資訊。

4. 執行、暫停和停止容器

Docker為開發者提供了可配置環境的靈活性。在本節中,我們將用環境變數來配置MariaDB的容器,為你的容器設定特定的系統屬性。

MariaDB有很多變數可以設定,比如資料庫名稱、密碼和資料庫使用者。關於支援的環境變數的更廣泛的列表,請參考Docker的MariaDB的文件

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb
docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb
docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb

上面的命令配置了MariaDB的根密碼、資料庫使用者和相關密碼。然後它在3306埠執行MariaDB。你可以決定用下面的命令來暫停一個容器的應用程式的執行。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker pause mariadb-wp
docker pause mariadb-wp
docker pause mariadb-wp

最後,你也可以用下面的命令來停止在容器內執行的應用程式。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker stop mariadb-wp
docker stop mariadb-wp
docker stop mariadb-wp

5. 將容器化的MariaDB連線到一個WordPress網站上

現在,我們需要將MariaDB連線到一個外部的WordPress網站。你可以在這裡瞭解更多關於在本地建立一個WordPress網站的資訊。

在WordPress網站的根目錄下,在你的程式碼編輯器中開啟wp-config.php檔案。找到為資料庫定義變數的程式碼部分,並編輯它,如下圖所示。確保你在建立MariaDB容器時使用資料庫名稱、密碼和埠號。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress’);
define('DB_PASSWORD', '');
define('DB_HOST', 'http://localhost:3306’);
define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress’); define('DB_PASSWORD', ''); define('DB_HOST', 'http://localhost:3306’);
define('DB_NAME', 'wordpress');

define('DB_USER', 'wordpress’);

define('DB_PASSWORD', '');

define('DB_HOST', 'http://localhost:3306’);

接下來,你需要將你的WordPress網站的資料庫轉儲匯入到容器化的MariaDB中。首先,確保你已經匯出了網站的當前資料庫。要了解更多,請檢視我們的MySQL資料庫備份教程

匯出資料庫後,在容器內安裝資料庫轉儲。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'
docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'
docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'

docker exec 命令允許開發者在容器內執行shell命令。我們在上面的命令中使用匯出的檔案將一個資料庫匯入MariaDB。

在你的WordPress網站上新增一個新的文章

我們將使用WordPress管理賬戶建立一個樣本文章來測試這個整合。

首先,登入WordPress,點選文章>寫文章。如下面所示,填寫細節,然後點選釋出。建立文章後,點選檢視文章,檢視新新增的文章。

在WordPress編輯器中新增一個新的文章

在WordPress編輯器中新增一個新的文章

這就是它的全部內容!

通過DevKinsta管理MariaDB和Docker

Kinsta的免費應用程式DevKinsta使開發者能夠有效地建立容器化的WordPress網站。該應用使用Docker來配置PHP版本、資料庫伺服器和Web伺服器。DevKinsta應用支援使用macOS、Windows和Ubuntu/Linux的開發者。

要開始使用,請在你的本地機器上下載、安裝並啟動DevKinsta。該應用程式為你提供三個選項:建立一個新的WordPress網站,從Kinsta匯入一個現有的網站,或建立一個自定義網站。

使用DevKinsta建立新網站

使用DevKinsta建立新網站

建立一個新的WordPress網站就像填寫一個簡單的表格並點選建立網站一樣容易。

DevKinsta的新WordPress網站建立介面

DevKinsta的新WordPress網站建立介面

恭喜你 – 你現在已經使用DevKinsta建立了一個容器化的WordPress網站。

小結

Docker是一個對開發者友好的工具,用於將執行MariaDB等資料庫伺服器的軟體容器化。它的最小化環境有助於保持系統資源的效率而不犧牲功能。

本教程教你如何安裝Docker,設定MariaDB,並將WordPress網站與容器化的MariaDB資料庫相連。另外,你還學會了如何使用DevKinsta來建立一個完全容器化的WordPress網站。

對於WordPress網站的建立及其眾多的託管解決方案,還有很多東西可以探索。如果你想發現你的網站管理可以如此簡單,Kinsta的管理型WordPress主機可以滿足你的要求。

評論留言