在 WordPress 中使用 Docker 容器
已發表: 2022-06-30運行 WordPress 網站可能涉及使用大量配置和軟件依賴項來生產高質量的產品。 您可能想知道是否有一種更簡單的方法可以在本地開發此類項目,而無需在自己的機器上運行這麼多不同的軟件包。
幸運的是,Docker 是一種產品,它為更快、更流暢的 WordPress 設置提供了解決方案。 Docker 不僅僅是一個虛擬機,它還提供了用於開發 WordPress 網站以及其他應用程序和軟件的容器。 Docker 還可以幫助您輕鬆準備應用程序以將其運送到其他平台,從而簡化您的工作流程。
在本文中,我們將了解容器到底是什麼以及它們如何影響開發。 然後我們將介紹如何為本地 WordPress 開發設置容器,並為生產做好準備。 讓我們開始吧!
什麼是容器?
安裝 WordPress 不是在公園裡散步,開發一個 WordPress 網站可能會讓人不知所措。 在 Web 開發方面,容器是打包代碼及其所有依賴項的標準化軟件單元,因此部署 WordPress 變得更加容易。 多個容器還可以從一個環境到另一個環境可靠地執行此操作。
雖然 Docker 是一種虛擬化,但它不同於常規的虛擬機 (VM)。 虛擬機佔用了寶貴的空間,將主機操作系統添加到每個應用程序的用戶空間,容器化開發在所有容器之間共享。
Docker 的真正美妙之處在於,無論您使用哪種操作系統,它都能以相同的方式運行。 此外,您可以在一台機器上運行許多 Docker 容器,否則這些容器將與相同數量的 VM 相衝突。 您也不必擔心本地開發有時會帶來的任何錯誤。 這也被稱為應用程序開發中的“但它在我的機器上工作”難題。
開始使用 Docker
Docker 有許多不同的產品,它們結合起來創建了一套功能強大的開發者工具。 您可以通過免費下載社區版本開始使用 Docker 引擎:
您需要創建一個 Docker 帳戶才能下載引擎。 然後,您需要熟悉 Docker 的“入門”文檔。 您將有八個不同版本的 Docker 可供選擇。 對於此示例,我們將下載 Docker Desktop for Mac:
您需要登錄到您的 Docker 帳戶才能下載引擎。 此外,您需要確保您的計算機上已準備好終端應用程序。
為 WordPress 使用容器(使用 Docker)
要使用 Docker 容器在本地開發 WordPress 網站,您還將使用另一個 Docker 應用程序。 稍後我們將介紹如何安裝 Compose,但重要的是要知道該工具用於在 Docker 中定義和運行多容器應用程序。 然後,你就可以直接跳進去了!
第 1 步:安裝 Compose
在開始使用 Docker 之前,您需要確保已安裝 Compose。 如果您正在運行 Docker Desktop for Mac 或 Windows,則 Compose 已預安裝:
如果您在 Linux 上工作,則需要使用終端來執行安裝命令。 請記住,Compose 依賴於 Docker 引擎。 您需要同時安裝兩者才能參與任何 WordPress 開發。

Compose 使用 YAML 非標記語言 (YAML) 文件來配置應用程序的所有服務。 這是一種呈現數據序列化的人性化方式,它適用於所有編程語言。 在這種情況下,YAML 文件將為 WordPress 設置必要的數據庫信息。
第 2 步:定義項目
安裝 Docker Engine 和 Compose 後,您就可以開始您的第一個 WordPress 開發項目了。 您需要使用“make directory”命令創建一個新的空項目目錄:
mkdir new_wordpress/
您設置的目錄將是您開發的上下文,並且僅包含必要的項目,包括您的 docker-compose.yaml 文件。 我們將在下一步中創建該文件。
接下來,您可以使用以下命令移至新目錄:
cd new_wordpress/
您現在將在您的新項目目錄中,並準備好開始工作。
第 3 步:為 YAML 創建 Docker 文件
現在,您需要創建一個新的 docker-compose.yaml 文件。 這將創建新的 WordPress 安裝和必要的 MySQL 數據庫。 您的文件將包含 WordPress 和數據庫的所有信息,包括必要的端口、數據庫、主機名和密碼。
您的 YAML 文件將如下所示:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
值得注意的是 Docker 卷包含持久數據,您可能需要參考有關卷的文檔以完全了解速度。
第 4 步:構建項目
現在您已經配置了 YAML 文件,您需要執行將拉入所有必需圖像並設置您的 WordPress 項目的命令。 在您的項目目錄中,您將運行以下命令:
docker-compose up -d
您現在應該看到 Docker 正在“拉動” MySQL 和 WordPress 映像。
值得注意的是 Docker Hub 鏡像頁麵包含很多關於 MySQL 和 WordPress 容器的有價值的信息:
將這些視為您的多合一參考指南,其中包含有用的容器映像命令。 它們值得收藏以備後用。
第 5 步:訪問您的 WordPress 安裝
因為您是在本地安裝此站點,所以您需要使用 YAML 文件中指定的端口,而不是典型的 WordPress /install.php
腳本。 由於我們在示例中使用 Docker Desktop for Mac,因此我們將使用https://localhost
作為 IP 地址並打開端口https://localhost:8000
。 這是您的 YAML 文件中指定的端口。
如果您以前安裝過 WordPress,那麼您現在可能會熟悉的領域,並且您可以完成“著名的五分鐘安裝”過程:
您可能需要給 Docker 幾分鐘來完全加載和初始化圖像,然後您可以在瀏覽器中訪問 WordPress 以完成標準安裝步驟。
建議您在完成安裝後也“關閉並清理”。 為此,您可以使用 Docker 'down' 命令。 這將停止並刪除容器,但保留 WordPress 數據庫。 如果您使用 Docker,則需要了解有關暫停、終止和停止容器的很多內容,因此值得閱讀有關該主題的更多內容。
我可以將 WordPress 圖像發送到生產服務器嗎?
需要注意的是,託管在 WP Engine 服務器上的站點沒有設置新 docker 映像所需的 root 訪問權限。 但是,如果您的站點位於生產服務器上,您可以按照以下步驟發送您的圖像。
現在您已經在本地創建了 WordPress 圖像,您可能想知道如何在生產服務器上使用相同的圖像。 您剛剛完成的一些步驟將是相同的,但您需要先在 Docker Hub 上創建一個私有存儲庫。
要將您的 WordPress Docker 容器投入生產,您需要使用您的 Docker 帳戶並將圖像推送到私有存儲庫。 從那裡,您可以按照我們之前介紹的相同步驟進行操作,但您將通過更改 YAML 文件中的端口信息將圖像從存儲庫直接拉到生產服務器。
使用私有存儲庫有一個免費選項,但您只能創建一個。 幸運的是,Docker 有許多定價層可以滿足幾乎所有開發人員的需求:
歸根結底,如果您正在尋求改進您的開發工作流程或剛剛涉足該領域,Docker 是您資源工具包中的絕佳工具。 它還提供了大量有用的文檔和支持。
使用 WP Engine 構建偉大的東西
既然您已經了解了 Docker,您可能會急切地想要開始開發一些新的應用程序來建立一個 WordPress 站點。 請記住,Docker 的最大好處之一是您將知道您的應用程序不會遇到奇怪的特定於機器的錯誤。
在 WP Engine,我們喜歡分享最好的開發人員資源,這樣您就可以為您的客戶創造令人難以置信的數字體驗。 無論您是處於項目的開發、暫存還是生產階段,我們都為您提供託管計劃和創新的數字解決方案!
想知道其他快速安裝 WordPress 應用程序的方法嗎? 或者也許其他方式來建立一個 WordPress 網站? 在評論部分讓我們知道您的想法。