Windows数据持久性的Docker – 主机映射与数据卷

我对Docker非常陌生,在阅读了关于数据量之后,我仍然对我所看到的行为感到困惑。

在我的撰写文件中,我有一个像这样的mysql的条目:

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

这将/ database目录映射到/var/lib/mysql 。 创build的数据库文件,我可以启动Wordpress,安装,添加一个post。 这个问题,因为它从来没有坚持任何创build的数据。 如果我重新启动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数据卷中并重新启动。 在上次运行过程中创build的任何数据仍然存在。

我如何得到这个工作使用主机映射目录?

我正确地思考使用卷的第二个例子是要走的路吗?

在Windows上的Docker卷的工作方式有点不同于Linux。 基本上在Windows上,docker运行一个虚拟机,docker被安装在虚拟机内部。 所以在你看来,你在Windows上本地运行docker命令,但实际的东西发生在VM内的后台。

 docker run -vd:/data:/data alpine ls /data 

首先,您需要在Docker设置中分享D: 你可以find一个详细的文章解释这样做的步骤

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