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

时间:2017-08-10 19:10:22

标签: mysql docker docker-compose

我对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数据卷中并重新启动工作。上次运行期间创建的任何数据仍然存在。

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

我是否正确地认为使用卷的第二个例子是要走的路?

1 个答案:

答案 0 :(得分:0)

Windows上的Docker卷的工作方式与Linux不同。基本上在Windows上,docker运行VM,并且在VM内部设置docker。所以在你看来,你在Windows上本地运行docker命令,但实际的东西发生在VM的后台。

RichCoFlatMap

首先,您需要在泊坞窗设置中共享D:您可以找到详细的文章来解释这样做的步骤

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