在docker容器上安装多个卷?

时间:2013-09-18 00:04:21

标签: docker

我知道我可以使用像

这样的东西在我的容器上装载一个目录
docker run -t -i -v '/on/my/host:/on/the/container' ubuntu /bin/bash

有没有办法创建多个主机 - 容器对?例如以逗号分隔的列表,或传入数组?

5 个答案:

答案 0 :(得分:209)

传递多个-v参数。

例如:

docker -v /on/my/host/1:/on/the/container/1 \
       -v /on/my/host/2:/on/the/container/2 \
       ...

答案 1 :(得分:2)

您可以在-v命令中多次使用docker run选项在容器中挂载多个目录:

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

答案 2 :(得分:0)

您可以只在卷上进行只读或只读和写入

docker -v /on/my/host/1:/on/the/container/1:ro \

docker -v /on/my/host/2:/on/the/container/2:rw \

答案 3 :(得分:0)

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

原始的较早答案应该仍然有效;只是试图使答案与当前最知名的方法保持一致。

答案 4 :(得分:-7)

或者你可以做到

docker run -v /var/volume1 -v /var/volume2 DATA busybox true