我正在使用docker,在使用--mount而不是-v挂载docker卷时遇到了一个问题。对我来说,弹出的错误似乎是无效的,但我可能在这里遗漏了一个小细节。
在--mount场景中,我希望将容器中创建的映像绑定到的路径不是绝对路径。
我在windows 10计算机上运行Docker
我拉出了jenkins/jenkins:lts镜像,想要启动两个使用相同配置的容器。正如前面所说的,我只是用它来玩弄docker,我正在探索音量系统是如何工作的。
我所做的是创建一个用于共享配置的docker卷。
docker volume create jenkins_cfg然后我试着运行两个容器。第一个容器的开头是:
docker run -d -p 8081:8080 --name jenkins2 -v jenkins_cfg:/var/jenkins_home jenkins/jenkins:lts这很好用..
第二个容器的开头是:
docker run -d -p 8085:8080 --name jenkin5 --mount source=jenkins_cfg,target=var/jenkins_home jenkins/jenkins:lts这将导致出现错误:"C:\Program Files\Docker\Docker\Resources\bin\docker.exe:来自守护程序的错误响应:类型“卷”的装载配置无效:装载路径无效:'var/jenkins_home‘装载路径必须是绝对路径。请参阅“”C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help“”。“
另外,/var/jenkins_home不能正常工作。
虽然-v也要求使用相同的目标文件夹,但我假设这个文件夹也可以在--mount的目标选项中工作。也许,我在这里忽略了一些东西。
发布于 2019-07-29 22:49:42
我计算出目标文件夹的前面应该有//,这样docker命令看起来就像
docker run -d -p 8085:8080 --name jenkin5 --mount source=jenkins_cfg,target=//var/jenkins_home jenkins/jenkins:lts仍然没有线索,为什么//必须添加,也许有人可以澄清这一点
发布于 2019-07-29 23:01:23
实际上,挂载绑定就像将物理磁盘卷的一部分挂载到容器中。但是卷就像虚拟内存,如果没有容器,就不能独立访问它们,但是绑定挂载可以独立访问
挂载绑定应该是主机中的绝对路径
希望这对你的事业有所帮助
https://stackoverflow.com/questions/57255004
复制相似问题