gpt4 book ai didi

mysql - Windows 上的 Docker 数据持久性 - 主机映射与数据卷

转载 作者:行者123 更新时间:2023-11-29 18:31:44 25 4
gpt4 key购买 nike

我对 Docker 还很陌生,在阅读了有关数据量的内容后,我仍然对我所看到的行为感到有些困惑。

在我的撰写文件中,我有一个 mysql 条目,如下所示:

db:
image: mysql
restart: always
volumes:
- ./database:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back

这将/database 目录映射到 /var/lib/mysql。数据库文件已创建,我可以启动 Wordpress、安装、添加帖子。问题在于它从未保留任何创建的数据。如果我重新启动 Docker 并执行:

docker-compose up -d

数据库为空。

将其更改为:

db:
image: mysql
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back

并添加这样的卷:

volumes:
db_data:

现在将数据保存在 Docker 数据卷中并重新启动即可工作。上次运行期间创建的所有数据仍然存在。

如何使用主机映射目录使其工作?

我认为使用卷的第二个示例是正确的方法吗?

最佳答案

Windows 上的 Docker 卷的工作方式与 Linux 略有不同。基本上在 Windows 上,docker 运行一个虚拟机,并且 docker 是在虚拟机内设置的。因此,在您看来,您在 Windows 上本地运行 docker 命令,但实际的操作发生在虚拟机内的后台。

docker run -v d:/data:/data alpine ls /data

首先您需要在 docker 设置中共享 D:。您可以找到一篇详细的文章,解释执行此操作的步骤

https://rominirani.com/docker-on-windows-mounting-host-directories-d96f3f056a2c

关于mysql - Windows 上的 Docker 数据持久性 - 主机映射与数据卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com