mysql - 如何在重新启动之间在 Windows 10 上保留 MySQL 容器

标签 mysql wordpress windows docker containers

我正在使用适用于 Windows 的 native Docker(在 Windows 10 上)进行 WordPress 开发。我有两个容器:WordPress 和 MySQL。 MySQL 容器有一个数据卷,在运行之间存储数据库数据。

我使用“docker-compose up -d”启动容器,并使用“docker-compose down”停止。当以这种方式停止时,MySQL 数据会正确保存到数据卷中,当我下次启动它时,我会看到所有更改都已保留。

但是,如果我在不先停止 MySQL 容器的情况下重新启动 Windows 10,则自上次启动以来对数据库所做的更改似乎不会保存。 Docker for Windows 足够智能,可以启动重启前运行的相同卷,但它真的不关心正确关闭它们以保存数据库数据吗?真的是这样还​​是我误解了什么?

避免系统重新启动时丢失数据的最可靠方法是什么?在重新启动之前手动停止所有 MySQL 容器是一项繁琐的任务,尤其是当多个服务器正在运行时。也许我可以创建一个脚本来解析“docker ps”输出,并在重新启动之前停止所有 MySQL 容器,但恐怕我可能在这里重新发明轮子。

处理情况的最佳方法是什么?我到处搜索,但没有找到任何关于某个主题的信息。我是唯一需要这个的人吗?我在这里遗漏了什么吗?

非常感谢任何帮助!谢谢!

附注我的 docker-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_

最佳答案

您可以使用 named volume用于您的 MySQL 数据。

volumes:
  - data-volume:/var/lib/db

(目的地应该是 MySQL 存储数据的位置)

关于mysql - 如何在重新启动之间在 Windows 10 上保留 MySQL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44259181/

相关文章:

MySQL用省略号截断文本

php - Netbeans 8 支持 php mysql 命令

javascript - 元素的同位素高度设置不正确

c++ - Windows C++ : Prioritizing threads to prevent main thread being preempted

c# asp.net 下拉列表选择值

mysql - 如何找到 Amazon RDS 生成的自动 S3 备份的位置?

html - 如何更改搜索按钮文本颜色?

javascript - 在 fancybox 中隐藏 div 但在普通页面上显示

c# - 如何以 C# 编程方式或命令行打开 explorer.exe 到 "Recycle Bin"

windows - ActivePerl。 .pl 文件不再执行,而是在记事本中打开