在 Ubuntu 20.04 上使用 Docker 安裝 WordPress

WordPress 是一個免費、開源且廣泛使用的內容管理系統。但是,使用 WordPress 設置新的網絡託管環境可能是一個耗時的過程。Docker 通過一些命令簡化了整個過程,從而減少了安裝所需的時間和精力。Docker 是一個開源容器化應用程序,旨在在同一台機器上開發、測試和運行多個應用程序。對於開發者來說,在不浪費服務器空間和內存的情況下創建測試環境非常有用。

在本教程中,我們將向您展示如何在 Ubuntu 20.04 上使用 Docker 安裝 WordPress。

先決條件

  • Atlantic.net 雲平台上的全新 Ubuntu 20.04 VPS
  • 在您的服務器上配置的 root 密碼

步驟 1 – 創建一台Linux Ubuntu Server

首先,登錄到您新建的Server,選擇 Ubuntu 20.04 作為具有至少 4GB RAM 的操作系統。通過 SSH 連接到您的Server並登錄。

登錄到 Ubuntu 20.04 服務器後,運行以下命令以使用最新的可用軟件包更新基本系統。

sudo apt-get update -y
安裝完所有更新包後,您可以繼續下一步。

第 2 步 – 安裝所需的依賴項

sudo apt-get install mariadb-client apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

安裝完所有軟件包後,您可以繼續下一步。

第 3 步 – 安裝 Docker

默認情況下,Ubuntu 20.04 默認存儲庫中不提供最新版本的 Docker,因此最好在您的系統中添加 Docker 官方存儲庫。

首先,使用以下命令下載並添加 GPG 密鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

接下來,使用以下命令添加 Docker 存儲庫:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

首先再次更新存儲庫:

sudo apt update

添加存儲庫後,您可以使用以下命令安裝 Docker 和 Docker Compose:

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

安裝兩個包後,使用以下命令檢查已安裝的 Docker 版本:

docker --version

要啟動 Docker 服務,請運行以下命令:

sudo systemctl start docker

啟用 Docker 在啟動時運行:

sudo systemctl enable docker

要檢查服務的狀態,請使用以下命令:

sudo systemctl status docker

輸出應顯示 Docker is active (running)

Ctrl+C離開

第 4 步 – 創建 MariaDB 容器

首先,您需要從 Docker 存儲庫下載 MariaDB 映像。您可以使用以下命令下載它:

docker pull mariadb
您應該看到以上輸出:


您可以sudo每次都繞過打字。將用戶添加到docker組授予相當於 root 的權限。

1. 首先,使用以下命令創建docker組:

sudo groupadd docker
這張圖片的 alt 屬性值為空,它的檔案名稱為 image-23.png

2. 然後,鍵入以下命令(確保將[user]替換 為您的用戶名,但別保留[]):

sudo usermod -aG docker [user]

3. 啟用新設置:

su - [user]

4. 最後,通過運行以下命令檢查以確認用戶現在是 docker 組的一部分:

id -nG
這張圖片的 alt 屬性值為空,它的檔案名稱為 image-25.png

接下來,在您的服務器上為 WordPress 創建一個目錄結構:

sudo mkdir ~/wordpress
sudo mkdir -p ~/wordpress/database
sudo mkdir -p ~/wordpress/html

接下來,通過運行以下命令創建一個名為 wordpressdb 的 MariaDB 容器:別改變以下內容,只改綠色部分即可。

docker run -e MYSQL_ROOT_PASSWORD=root-password -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=password -e MYSQL_DATABASE=wpdb -v /root/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadb

您應該會看到類似於以下內容的輸出:

417875d6f26979f788cebe38559786f2b9272e86d44dd90216c3041e0dae4d98

在上面的命令中,這裡是定義的變量:

  • MYSQL_ROOT_PASSWORD:此選項將配置 MariaDB 根密碼。
  • MYSQL_USER:這將為 WordPress 創建一個新的 wpuser。
  • MYSQL_PASSWORD:這將為wpuser設置密碼。
  • MYSQL_DATABASE:這將為 WordPress 創建一個名為 wpdb 的新數據庫。
  • -v /root/wordpress/database:/varlib/mysql:這會將數據庫目錄鏈接到 mysql 目錄。

接下來,使用以下命令檢查 MariaDB 容器的 IP 地址:

docker inspect -f '{{ .NetworkSettings.IPAddress }}' wordpressdb

現在,使用數據庫用戶和密碼連接到您的 MariaDB 容器:

mysql -u wpuser -h 172.17.0.2 -p

您應該看到以下輸出:


mis@docker:/$ mysql -u wpuser -h 172.17.0.2 -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.6.4-MariaDB-1:10.6.4+maria~focal mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

現在,使用以下命令驗證數據庫:\

show databases;

您應該在以下輸出中看到您的 wpdb 數據庫:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| wpdb               |
+--------------------+
2 rows in set (0.001 sec)

現在,使用以下命令退出 MariaDB shell:

exit

第 5 步 – 創建一個 WordPress 容器

首先,使用以下命令從 Docker 存儲庫下載 WordPress 鏡像:

docker pull wordpress:latest

您應該看到以下輸出:

latest: Pulling from library/wordpress
7d63c13d9b9b: Pull complete
24b15dfd3cfa: Pull complete
64625c2e355f: Pull complete
275a8dd8f358: Pull complete
eb1c8ccc797a: Pull complete
0aaf98f0c33a: Pull complete
e6e7c544c3e3: Pull complete
4ae870a5fb80: Pull complete
98833c4f4a49: Pull complete
f1a6af6bf10a: Pull complete
a56ec4dacea3: Pull complete
ab49679021a9: Pull complete
62d224267322: Pull complete
50baad31f9e0: Pull complete
0dce3ac87bb9: Pull complete
6e8719cc3579: Pull complete
69628185e06b: Pull complete
3a97cd45ec02: Pull complete
5cb43ca46b72: Pull complete
dddea2e20543: Pull complete
0efc87c94491: Pull complete
Digest: sha256:c1bb65c0bb60d22ba572a039614a855164911b39ff6a0d8e38e1e8fd6c8619f7
Status: Downloaded newer image for wordpress:latest
docker.io/library/wordpress:latest

接下來,使用以下命令從下載的圖像創建一個名為 wpcontainer 的新 WordPress 容器:

docker run -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=password -e WORDPRESS_DB_NAME=wpdb -p 8081:80 -v /root/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress

這將創建一個新的 WordPress 容器並將容器上的端口 80 暴露給主機上的端口 8081。

您現在可以使用以下命令驗證您的 WordPress 容器:

curl -I localhost:8081

您應該看到以下輸出:

HTTP/1.1 302 Found
Date: Thu, 04 Nov 2021 07:42:39 GMT
Server: Apache/2.4.51 (Debian)
X-Powered-By: PHP/7.4.25
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
X-Redirect-By: WordPress
Location: http://localhost:8081/wp-admin/install.php
Content-Type: text/html; charset=UTF-8

步驟 6 – 將 Nginx 配置為反向代理

接下來,您需要安裝和配置 Nginx 作為 WordPress 容器的反向代理,以便您可以使用端口 80 訪問您的 WordPress。

首先,使用以下命令安裝 Nginx Web 服務器:

sudo apt-get install nginx -y

安裝後,創建一個新的 Nginx 虛擬主機配置文件:

sudo nano /etc/nginx/sites-available/wordpress

添加以下幾行:

server {
  listen 80;
  server_name wp.example.com;
  location / {
    proxy_pass http://localhost:8081;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

保存並關閉文件(Ctrl+X=>Y=>Enter),然後使用以下命令激活虛擬主機:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

接下來,重新啟動 Nginx 服務以應用更改:

sudo systemctl restart nginx

第 7 步 – 訪問 WordPress 界面

現在,打開您的 Web 瀏覽器並輸入http://domain_name or IP:8081/

接下來不在贅述

發佈留言