Ответ 1
Передайте несколько аргументов -v
.
Например:
docker -v /on/my/host/1:/on/the/container/1 \
-v /on/my/host/2:/on/the/container/2 \
...
Я знаю, что смогу монтировать каталог на моем хосте в контейнере, используя что-то вроде
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 \
...
Вы можете использовать -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
Вы можете иметь только чтение или чтение и запись только на томе
docker -v /on/my/host/1:/on/the/container/1:ro \
docker -v /on/my/host/2:/on/the/container/2:rw \
Докер теперь рекомендует перейти на использование --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 /var/volume1 -v /var/volume2 DATA busybox true