无法与 Docker 中的容器共享本地 Windows 路径

Posted

技术标签:

【中文标题】无法与 Docker 中的容器共享本地 Windows 路径【英文标题】:Unable to share a local windows path with a container in Docker 【发布时间】:2019-07-03 22:22:24 【问题描述】:

Docker 新手,在 Win 10 x64 上运行 Docker Toolbox

我正在尝试与容器(在本例中为 Portainer)共享(装载)本地 Windows 路径,以便容器将其所有配置设置保存在我的 PC 本地,以便我可以随时升级容器同时仍然保持其配置持久性。

我已经阅读/观看了许多教程、参考资料、文档、视频等,我正在尝试做他们似乎解释要做的事情,但是当我创建安装了本地路径的容器然后进入容器,设置一些配置设置,然后查看我挂载的windows路径,那里没有保存任何东西。

不确定是什么问题?

这是我正在运行的 docker cmd 示例:

docker run -it -v /c/Servers/DockerConfigs/Portainer:/data :P portainer/portainer

据我了解,容器中 /data 文件夹中存储的任何内容也应该保存到主机 C:\Servers\DockerConfigs\Portainer 上的 Windows 文件夹中,但没有任何内容保存到该 Windows 文件夹中...

我还尝试将主机上的一些文件复制到该 windows 文件夹,然后在容器中查看 /data 文件夹以查看它们是否使用 ls -a 显示,但同样,那里没有任何显示.. .

有人知道我错过了什么吗?

【问题讨论】:

【参考方案1】:

感谢这个帖子,终于找到了答案:How to mount a host directory in a Docker container

事实证明,最简单的方法(在 Windows 上)是确保从 Users 目录挂载文件夹,并在启动容器时使用 --mount 命令。

docker run -P -it --name organizr --mount src="/c/Users/My PC/AppData/Roaming/DockerConfigs/Organizr",dst=/config,type=bind organizrtools/organizr-v2:latest

【讨论】:

【参考方案2】:

确保 C 盘已启用共享:Right click on the whale icon -> Settings -> Shared Drives。还可以考虑使用更新的 Docker Desktop for Windows。

【讨论】:

谢谢,不幸的是,当我在我的任何一台 Win 10 机器上启用 Hyper-V 时,我最终会进入引导循环,所以至少现在我无法使用 Docker Toolbox。【参考方案3】:

我也有同样的问题。所以,我做了以下步骤。

首先,拉取windowsserver容器(你可以根据需要拉取任何容器)。

进入 docker 桌面,选择图片。

您可以看到您提取的图像。选择运行,然后更改设置。也就是说,设置一个容器名称,一个你要挂载的机器中的路径,容器路径(为此,我简单地给了 C:\data)

然后保存设置

转到 docker 桌面中的容器/应用程序。

您可以看到您创建的新容器名称。

*打开那个容器的cli >-(这个符号)

然后会打开一个路径为 C:\ 的 cli。

*键入 目录。您可以看到那里创建的文件夹数据。

现在,在本地机器的mounted文件夹中添加一些文件,看看是否反映在容器的data文件夹中。

【讨论】:

【参考方案4】:

停止做任何事情并这样做:

    卸载 Docker Desktop(稳定版) 重启 Windows 机器 安装 Docker 桌面(边缘) 问题已解决

【讨论】:

为什么?这是一个毫无意义的答案,除非您说明为什么它不能在稳定版本上运行。

以上是关于无法与 Docker 中的容器共享本地 Windows 路径的主要内容,如果未能解决你的问题,请参考以下文章

docker 基础(2) 共享目录

使用docker搭建nfs实现容器间共享文件

ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录

6.Docker技术入门与实战 --- Docker数据管理

无法访问本地主机上的 Docker 容器 [重复]

在不同的docker容器之间共享python中的变量