我是之前用docker安裝過wordpress和mysql

所以我需要先徹底移除現有容器與數據

為了確保重新安裝時沒有舊數據的干擾,需要先刪除容器,再刪除它們使用的數據卷。如果做過數據持久化數據沒有影響。

  1. 停止並刪除容器
    在終端中依次執行以下命令:



    bash

# 停止容器
docker stop wordpress mysql
# 刪除容器
docker rm wordpress mysql
  1. 清理數據卷(關鍵步驟)
    僅僅刪除容器,之前創建的網站文章、頁面、用户評論以及數據庫裏的所有內容都還保留在Docker的"數據卷"裏。要徹底清理,需要刪除這些卷。



    bash

# 刪除所有未使用的數據卷
docker volume prune -f

請注意:執行此操作後,所有數據將無法恢復,請務必確認您已不需要這些數據。

🌐 創建自定義網絡並分配靜態IP

要使用靜態IP,我們需要創建一個自定義的Docker網絡。

bash

# 創建一個名為my-net的自定義網絡,並指定其子網範圍
docker network create --subnet=172.20.0.0/16 my-net

這個子網172.20.0.0/16是供Docker容器內部使用的,您也可以根據需要修改。

🐳 使用靜態IP重新部署

現在,我們在這個自定義網絡中啓動MySQL和WordPress容器,併為它們分配固定的IP地址。

  1. 啓動MySQL數據庫



    bash

docker run -d \
  --name mysql \
  --network my-net \
  --ip 172.20.0.10 \
  -e MYSQL_ROOT_PASSWORD=mim123456 \
  -v /usr/local/share/mysql/data:/var/lib/mysql \
  -v /usr/local/share/mysql/conf:/etc/mysql/conf.d \
  -v /usr/local/share/mysql/logs:/var/log/mysql \
  mysql:8
  • 這裏通過--ip 172.20.0.10為MySQL容器設置了靜態IP。

  • 請確保環境變量MYSQL_ROOT_PASSWORD的值mim123456是您自己設定的強密碼。

  1. 啓動WordPress網站



    bash

docker run -d \
  --name wordpress \
  --network my-net \
  --ip 172.20.0.20 \
  -e WORDPRESS_DB_HOST=172.20.0.10:3306 \
  -e WORDPRESS_DB_USER=root \
  -e WORDPRESS_DB_PASSWORD=mim123456 \
  -e WORDPRESS_DB_NAME=wordpress \
  -p 80:80 \
  wordpress
  • 這裏通過--ip 172.20.0.20為WordPress容器設置了靜態IP。

  • 關鍵配置:WORDPRESS_DB_HOST環境變量現在直接指向MySQL容器的靜態IP172.20.0.10,這樣兩個容器就能通過固定IP可靠地通信了。

✅ 驗證與訪問

完成以上步驟後,可以進行驗證:

  1. 運行 docker ps 確認兩個容器都處於運行狀態。
  2. 在瀏覽器訪問您的服務器IP或域名(例如 http://您的服務器IP),應該能看到WordPress的安裝界面。

💡 一些補充説明

這裏docker啓動的mysql和wordpress配置了固定ip,以後系統重啓也不會出錯了

建議設置自動重啓:

bash

docker update --restart=unless-stopped mysql wordpress
此時已經配置了自動重啓策略