我是之前用docker安裝過wordpress和mysql
所以我需要先徹底移除現有容器與數據
為了確保重新安裝時沒有舊數據的干擾,需要先刪除容器,再刪除它們使用的數據卷。如果做過數據持久化數據沒有影響。
- 停止並刪除容器
在終端中依次執行以下命令:
bash
# 停止容器
docker stop wordpress mysql
# 刪除容器
docker rm wordpress mysql
- 清理數據卷(關鍵步驟)
僅僅刪除容器,之前創建的網站文章、頁面、用户評論以及數據庫裏的所有內容都還保留在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地址。
- 啓動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是您自己設定的強密碼。
- 啓動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可靠地通信了。
✅ 驗證與訪問
完成以上步驟後,可以進行驗證:
- 運行
docker ps確認兩個容器都處於運行狀態。 - 在瀏覽器訪問您的服務器IP或域名(例如
http://您的服務器IP),應該能看到WordPress的安裝界面。
💡 一些補充説明
這裏docker啓動的mysql和wordpress配置了固定ip,以後系統重啓也不會出錯了
建議設置自動重啓:
bash
docker update --restart=unless-stopped mysql wordpress
此時已經配置了自動重啓策略