我正在使用本機Docker for Windows(在Windows 10上)進行WordPress開發。我有兩個容器:WordPress和MySQL。 MySQL容器有一個數據卷,其中DB數據在運行之間存儲。如何在Windows 10上重新啓動之間持久化MySQL容器
我使用'docker-compose up -d'開始容器並停止'docker-compose down'。當以這種方式停止時,MySQL數據會正確保存到數據卷中,並且當我下次啓動時,我會看到所有更改都保留下來。
但是,如果我先重新啓動Windows 10而不先停止MySQL容器,則似乎不會保存自上次啓動以來對數據庫所做的更改。 Docker for Windows足夠聰明地啓動重啓之前運行的相同卷,但它是否真的不關心如何正確關閉它們,以便保存數據庫數據?這是真的嗎?或者我誤解了任何東西?
避免系統重啓時丟失數據的最可靠方法是什麼?在重新啓動之前手動停止所有MySQL容器是一項乏味的任務,尤其是在運行多個服務器時。也許我可以創建一個腳本來解析'docker ps'的輸出,並且在重啓之前會停止所有的MySQL容器,但是恐怕我可能在這裏重新發明了一個輪子。
處理情況的最佳方式是什麼?我搜索了高和低,但沒有發現任何話題。我是唯一一個需要這個的人嗎?我在這裏錯過了什麼嗎?
任何幫助真的很感激!謝謝!
P.S.我的搬運工,compose.yml文件是:
version: '2'
services:
db:
image: mysql:5.7
ports:
- "9013:3306"
volumes:
- ./database:/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
volumes:
- ./wordpress:/var/www/html
ports:
- "8013:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_TABLE_PREFIX: wpd1_
你可以顯示你的'docker-compose.yml'文件嗎? –
@ janshair汗,還說我的問題文本 – Kirlat