docker-compose 其他机器的共享卷

标签 docker docker-compose share

我正在使用在 Windows 10 上创建的 docker(该 docker 用于 linux)。

此外,使用 docker-compose(3.4 版)将 docker 外部的卷映射到 docker 容器中。

我在另一台计算机上有一个共享文件夹,我想在 docker 中使用它。

我检查了该文件夹的访问权限,我可以从 docker 正在运行的计算机上访问它。

//ip_addr/shared_folder

在 docker-compose 中,我写道:

volumes:
  - //1.2.3.4/my_folder:my_docker_folder

我发现了一些带有网络声明的语法。
不知 Prop 体要怎么写?
volumes:
  - /my_folder:my_docker_folder
networks:
  frontend:
    ipv4_address: 1.2.3.4

并且 ip 1.2.3.4 是 my_folder 的 ip?

...但是这种语法可能不正确,或者我应该运行一些命令来正确共享文件夹。

为了将另一台计算机的共享文件夹映射到 docker 需要做什么。

我已经尝试了几件事,还映射了一个符号链接(symbolic link)。

我正在尝试在 Windows 10 中创建一个符号链接(symbolic link)并将其附加到 docker,但这对我没有多大帮助,因为我遇到了异常。

在 Windows 命令行中,我做了:
mklink /D c:\test_ext \\ip\shared_folder

运行 docker 时(我有 docker 社区版版本
18.06.1-ce-win73 (19507) - Linux 容器)。

在命令行中,我尝试运行 alpine(这也发生在其他基于 linux 镜像的 docker 上):

docker run -i -t -v c:\test_ext:/data:rw alpine/bin/sh
我得到错误:

docker: Error response from daemon: error while creating mount source path '/host_mnt/c/test_ext': mkdir /host_mnt/c/test_ext: file exists.



这只发生在外部 IP 上。

我看到的是文件夹+子文件夹+文件以完全权限共享。

我尝试了一些解决方法,例如:docker volumes prune,但这并没有太大帮助。

为什么会出现该错误消息,我该如何解决?

我还发现了一种可能有帮助的替代方法:
docker volume create \
  --driver local \
  --opt type=nfs \
  --opt o=addr=ip_address,rw \
  --opt device=:/myfolder 
   my_volume

这也不能解决问题(语法错误)。

谢谢。

最佳答案

我认为你需要给予。靠近音量volumes: - ./my_folder:my_docker_folder

关于docker-compose 其他机器的共享卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660217/

相关文章:

docker - 使用本地主机访问DigitalOcean Docker Drop

docker - Docker 镜像及其存储库何时会具有不同的名称?

docker - 有没有办法在 VSCode Devcontainers 中调试 PostCreateCommand?

docker - 使用 docker-compose 运行图像的多个实例失败

python - docker python :3 with docker-compose 中缺少环境变量

ios - UIActivity 自定义分享,触摸更多按钮时不显示缩略图图标

javascript - 使用 WebView 构建应用程序时,我可以打开原生 Android 共享对话框吗?

git - Bamboo + Docker + Kubernetes部署

docker - 我真的需要 docker swarm 吗?

android - 在 Activity 之间共享菜单栏