我使用的工具是在 Docker 映像中提供的。由于安装该工具非常复杂,有很多依赖项,我想在主机上使用我的 IDE 工作,但在容器上运行它。
所以在下载并加载图像后,我运行:
sudo docker run -it -v /home/myself/WIP/thetool:/home/thetool name/label
Run Code Online (Sandbox Code Playgroud)
没有挂载,工具在 下/home/thetool,但是挂载了,这个文件夹是空的(因为宿主机里的文件夹是空的)。
我需要从容器中复制工具,然后挂载它,还是有办法直接做。
yam*_*enk 21
您实际上可以使用具有显式设备挂载点的 docker 卷来实现这一点。
如果目录/home/myself/WIP/thetool为空,请执行以下操作:
创建一个 docker 卷,如下所示:
docker volume create --driver local \
--opt type=none \
--opt device=/home/myself/WIP/thetool \
--opt o=bind \
tool_vol
Run Code Online (Sandbox Code Playgroud)
启动容器并挂载创建的卷:
sudo docker run -it -v tool_vol:/home/thetool name/label
Run Code Online (Sandbox Code Playgroud)
现在,即使主机文件夹最初是空的/home/thetool,容器内的数据也将在容器内可用/home/myself/WIP/thetool。
Docker-compose for yamenk 很好的答案是:
version: '2'
services:
your_service:
volumes:
- tool_vol:/home/thetool
build: .
command: your_command
volumes:
tool_vol:
driver: local
driver_opts:
type: none
device: /home/myself/WIP/thetool
o: bind
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7081 次 |
| 最近记录: |