本教程將向您展示如何使用 Docker Compose 在 Docker 容器中運行 WordPress 安裝。WordPress是世界上最流行的 CMS(內容管理系統),這使其成為構建新站點時最重要的考慮因素。它建立在帶有 PHP 處理的 MySQL 數據庫上。設置本地 WordPress 安裝涉及多個步驟,并且可能是一個耗時的過程。通常,您需要設置本地Web 服務器,配置服務器以執行 PHP 代碼,并設置 MySQL 數據庫。然而,設置本地 WordPress 環境的最簡單方法是將容器化與 Docker 結合使用。相關:一文看懂什么是 Docker 容器 https://www./docker-container.html如果您剛開始使用 Docker 并且還沒有安裝 Docker,我建議您查看我們的教程《在 Ubuntu 上安裝 Docker 分步圖文指南 https://www./ubuntu-docker-zhinan.html 》。1. 安裝 Docker Compose當廣泛使用 Docker 時,幾個不同容器的管理很快變得繁瑣。Docker Compose 是一個工具,您可以使用它輕松定義和啟動 Docker 中的多容器應用程序。使用 Compose,您可以在單個 YAML 文件中定義所有服務,并且使用單個命令,可以啟動或拆除所有服務。在本教程中,我們將使用 Docker Compose 在隔離的容器化環境中并排運行兩個容器(WordPress 和 MySQL)。現在讓我向您展示如何安裝最新版本的 Docker Compose 來幫助您管理多容器應用程序。首先,檢查 當前版本 ,如有必要,在下面的命令中更新它:sudo curl -L 'https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)' -o /usr/local/bin/docker-compose
linuxmi@linuxmi:~/www.$ sudo chmod +x /usr/local/bin/docker-compose
linuxmi@linuxmi:~/www.$ docker-compose --version
Docker Compose version v2.2.2
更多關于Docker Compose的內容可以參考官方文檔。2. 準備目錄您需要創建一個名為wordpress under的新目錄/srv 來存放 WordPress 數據。這樣我們就實現了一定的數據持久化。linuxmi@linuxmi:~/www.$ sudo mkdir -p /srv/wordpress [sudo] linuxmi 的密碼: linuxmi@linuxmi:~/www.$ cd /srv/wordpress/
大家知道,Docker 容器中的數據不是持久的。這意味著如果您停止容器并再次運行它,您將丟失所有數據,里面將不再有任何數據。當然,這可以通過添加 Docker 數據卷來避免,您將在本教程后面看到。3. 創建 YAML 文件在 Docker Compose 領域中,運行容器所需的所有資源都必須在名為 .yaml 的 YAML 文件中定義docker-compose.yaml 。然后 Docker Compose 將讀取此類文件并與 Docker 守護程序通信以創建、配置或銷毀定義的資源。在我們的例子中,該 docker-compose.yaml 文件將包含我們的 dockerized WordPress 設置的服務定義。此外,Docker Compose 允許我們將這些服務與共享網絡和卷鏈接在一起。因此,讓我們從使用Vim編輯器在/srv/wordpress 目錄中創建一個新文件docker-compose.yaml 開始 。使用如下內容來填充它:version: '3' services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: my_password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress_user MYSQL_PASSWORD: wordpress_password volumes: - mysql_data:/var/lib/mysql wordpress: image: wordpress:latest depends_on: - mysql ports: - 8080:80 restart: always environment: WORDPRESS_DB_HOST: mysql:3306 WORDPRESS_DB_USER: wordpress_user WORDPRESS_DB_PASSWORD: wordpress_password volumes: - ./wp-content:/var/www/html/wp-content volumes: mysql_data:
- 我們定義了兩個自動相互鏈接的服務、
mysql 和wordpress 。 - 他們使用 Docker 鏡像,這將決定使用哪個版本的 MySQL 和 WordPress。在這種情況下,他們的最新版本。
- MySQL環境:WordPress 將使用這些環境變量連接到 MySQL 容器。
- WordPress環境:要運行 WordPress 容器,您應該設置數據庫連接詳細信息。
- WordPress 映像基于 Apache,它通過 derfault在端口 上運行
80 。將默認 Apache 端口映射到8080 本地計算機的端口。 - mysql_data:流入這個數據庫的數據將被持久化到一個命名卷
mysql_data ,這樣即使你刪除了容器,數據仍然存在于你的機器上,并且可以再次安裝在新的容器中。 另外,下面的volumes 參數 wordpress 是告訴Dockerwp-content 在本地文件系統中顯示 目錄。現在,我們為 WordPress 站點的某些部分(例如wp-content 目錄)提供了持久存儲。在wp-content 包含所有用戶提供的內容。基本上,您可以上傳到網站的任何內容都會在此處結束。但是,只要您同時擁有數據庫和 wp-content 文件夾,您就可以隨時恢復您的站點,即使其他所有內容都丟失了。4. 使用 Docker Compose 運行 WordPress現在您已準備好運行將構建本地環境的 Docker 命令。確保您仍在wordpress 目錄中。運行以下命令:linuxmi@linuxmi:~/www.$ sudo docker-compose up -d
該命令將開始運行腳本,當 Docker 拉入 MySQL 和 WordPress 圖像時,您應該會在終端中看到各種“正在下載”和“正在等待”消息。4-5分鐘即可。當您密切關注本地文件系統時,您會看到在拉入 Docker 鏡像后,/srv/wordpress/wp-content 將創建文件夾,并填充文件和文件夾。OK,現在帶有 MySQL 容器和 WordPress 容器的 WordPress 安裝已成功。5. 訪問您的 WordPress 安裝最后,在我們的容器運行的情況下,我們可以通過 WordPress Web 界面完成安裝。在 Web 瀏覽器中,導航到http://localhost:8080 或http://your_ip_address:8080 。您可能需要使用 ifconfig 命令找出您的 IP 地址。您將看到語言選擇頁面。選擇您的語言,然后單擊繼續。在下一個屏幕中,填寫必要的信息并單擊安裝 WordPress 。然后您將看到標準的 WordPress 登錄屏幕。成功通過身份驗證后,您就可以開始使用 WordPress。額外的 Docker Compose 選項首先,確保您在/srv/wordpress 目錄中。要查看Docker 應用程序的狀態,請執行以下命令:linuxmi@linuxmi:/srv/wordpress$ sudo docker-compose ps NAME COMMAND SERVICE STATUS PORTS wordpress-mysql-1 'docker-entrypoint.s…' mysql running 33060/tcp wordpress-wordpress-1 'docker-entrypoint.s…' wordpress running 0.0.0.0:8080->80/tcp, :::8080->80/tcp
linuxmi@linuxmi/srv/wordpress$ sudo docker-compose stop 要啟動現有容器中開始與 docker-compose up :linuxmi@linuxmi/srv/wordpress$ sudo docker-compose start
linuxmi@linuxmi/srv/wordpress$ sudo docker-compose down
結論我們向您介紹了 Docker Compose 背后的概念,您現在應該能夠定義甚至是簡單的多容器應用程序。在本教程中,您使用 Docker Compose 安裝了帶有 Docker 的 WordPress。您現在已經啟動并運行了 WordPress。我們希望您喜歡這篇關于使用 Docker 安裝 WordPress的指南文章。來自:Linux迷 鏈接:https://www./docker-install-wordpress.html
|