Py学习  »  docker

Docker for Windows-装载目录为空

bukubapi • 6 年前 • 2209 次点击  

我有一个安装了mysql的镜像。我需要将/var/lib/mysql目录映射到我的主机系统。下面是我在该目录中看到的屏幕截图,当我使用以下命令时

docker run--rm-it--env file=envproxy--network mynetwork--name my_db_dev-p 3306:3306 my_db/bin/bash

Screenshot of the Docker container without mount from the same image

现在,当我试图从主机(windows 10)挂载一个目录时,通过从同一个映像运行另一个容器,mysql目录是空的。

docker run--rm-it--env file=envproxy--network mynetwork-v d:/docker/data:/var/lib/mysql--name my_db_dev1-p 3306:3306 my_db/bin/bash

也试过了,但没用

docker run--rm-it--env file=envproxy--network mynetwork-v d:\ docker\data:/var/lib/mysql--name my_db_dev1-p 3306:3306 my_db/bin/bash

enter image description here

我看到的一件事是,路径中的mysql目录现在有了根用户,而不像前一个例子中的mysql。

我希望将现有容器(mysql目录)中的所有内容复制回主机装载目录

有可能吗?这又如何实现呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43711
文章 [ 3 ]  |  最新文章 6 年前
James
Reply   •   1 楼
James    6 年前

Docker桌面上的相同问题(2.0.0.3(31259))。我从 this issues

我确保容器已停止,打开Docker设置,选择“共享驱动器”,删除“C”上的勾号并再次添加。Docker要求Windows帐户凭据,我输入了新的凭据。然后启动容器,装入卷就可以了。问题解决了。

It 只需重置Docker设置中的凭据就可以更简单地解决问题。

Inder
Reply   •   2 楼
Inder    7 年前

使用带有反斜杠“\”的Windows路径写入,建议使用变量指定路径。另一方面,对于Linux,请使用斜线“/”,例如:

docker run -it -v %userprofile%\work\myproj\some-data:/var/data
grapes
Reply   •   3 楼
grapes    7 年前

如果你需要文件 容器放入主机,更好地使用 docker cp 命令: https://docs.docker.com/engine/reference/commandline/cp/

它看起来像: docker cp my_db_dev1:/var/lib/mysql d:\docker\data

小精灵

实际上,我想在其他容器中持久化数据库文件, 所以我想要使用量

在这种情况下,您必须:

  1. 开始使用 docker-compose 编排容器。

  2. docker-compose.yml 创建卷,卷在所有容器之间共享。类似于:

docker-compose.yml文件

version: '3'
services:
  db1:
    image: whatever
  volumes:
    - myvol:/data

  db2:
    image: whatever2
  volumes:
    - myvol:/data

volumes:
  myvol:  

描述: https://docs.docker.com/compose/compose-file/#volume-configuration-reference