我知道我可以使用类似以下命令将主机上的目录挂载到容器中:
docker run -t -i -v '/on/my/host:/on/the/container' ubuntu /bin/bash
是否有一种方法可以创建多个主机容器对?例如,使用逗号分隔的列表或传入一个数组?
我知道我可以使用类似以下命令将主机上的目录挂载到容器中:
docker run -t -i -v '/on/my/host:/on/the/container' ubuntu /bin/bash
是否有一种方法可以创建多个主机容器对?例如,使用逗号分隔的列表或传入一个数组?
传递多个-v
参数。
例如:
docker -v /on/my/host/1:/on/the/container/1 \
-v /on/my/host/2:/on/the/container/2 \
...
Docker现在建议使用--mount
进行迁移。
当前Docker文档中还详细解释了多个卷挂载的方法。
来自:https://docs.docker.com/storage/bind-mounts/
$ docker run -d \
-it \
--name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
--mount type=bind,source="$(pwd)"/target,target=/app2,readonly,bind-propagation=rslave \
nginx:latest
原来较旧的答案仍应该可行;只是尝试将答案与当前已知的最佳方法保持一致。
docker run -v /Users/brandomiranda/iit-term-synthesis:/home/bot/iit-term-synthesis \ -v /Users/brandomiranda/pycoq:/home/bot/pycoq \ -v /Users/brandomiranda/ultimate-utils:/home/bot/ultimate-utils \ -ti brandojazz/iit-term-synthesis:test bash
有什么问题? - Charlie Parkerdocker run
命令中多次使用-v
选项,以在容器中挂载多个目录:docker run -t -i \
-v '/on/my/host/test1:/on/the/container/test1' \
-v '/on/my/host/test2:/on/the/container/test2' \
ubuntu /bin/bash
docker -v /on/my/host/1:/on/the/container/1:ro \
docker -v /on/my/host/2:/on/the/container/2:rw \
docker run -v E:\data\dev:c:/downloads -v E:\data\dev2 c:/downloads2 -i --publish 1111:80 -P SomeBuiltContainerName:SomeLabel
提供一个可运行的示例:
docker run -v /Users/brandomiranda/iit-term-synthesis:/home/bot/iit-term-synthesis \
-v /Users/brandomiranda/pycoq:/home/bot/pycoq \
-v /Users/brandomiranda/ultimate-utils:/home/bot/ultimate-utils \
-ti brandojazz/iit-term-synthesis:test bash
但首先要做:
docker pull brandojazz/iit-term-synthesis:test
我看到有人评论问读写或只读是否是默认选项;读写是默认选项。(发帖是因为我的声望不够,无法评论)
根据docker文档,运行以下命令:
docker run -d \
--name devtest \
--mount source=myvol2,target=/app \
nginx:latest
然后使用 docker inspect devtest
命令并在输出的 "Mounts" 部分中查找 "RW" 选项:
"Mounts": [
{
"Type": "volume",
"Source": "/var/lib/docker/volumes/myvol2/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
让我们看到默认选项允许卷既可读又可写。
要将您的音量设置为只读(再次参见官方文档),请在source
和destination
标签后添加readonly
:
docker run -d \
--name=nginxtest \
--mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
nginx:latest
docker inspect nginxtest
命令并找到 "Mounts":"Mounts": [
{
"Type": "volume",
"Source": "/var/lib/docker/volumes/nginx-vol/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "",
"RW": false,
"Propagation": ""
}
],
目标
和目的地
标签之间切换,但我工作的假设是它们可以互相使用。)或者你可以这样做
docker run -v /var/volume1 -v /var/volume2 DATA busybox true
docker run -t -i \ -v '/on/my/host/test1:/on/the/container/test1' \ -v '/on/my/host/test2:/on/the/container/test2' \ ubuntu /bin/bash
。 - Charlie Parker