Установка нескольких томов на контейнер-докер?

Я знаю, что смогу монтировать каталог на моем хосте в контейнере, используя что-то вроде

docker run -t -i -v '/on/my/host:/on/the/container' ubuntu /bin/bash

Есть ли способ создать несколько пар-контейнеров-контейнеров? например список, разделенный запятыми, или передать в массив?

Ответ 1

Передайте несколько аргументов -v.

Например:

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

Ответ 2

Вы можете использовать -v несколько раз в команде docker 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

Ответ 3

Вы можете иметь только чтение или чтение и запись только на томе

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

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

Ответ 4

Докер теперь рекомендует перейти на использование --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

Оригинальный старый ответ должен все еще работать; просто пытаюсь сохранить ответ в соответствии с текущим наиболее известным методом.

Ответ 5

Или вы можете сделать

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