2015-10-26 1 views
2

мне нужно установить объем /path/a из одного контейнера в /path/b в другом контейнере, но в соответствии с documentation только HOST:CONTAINER или HOST:CONTAINER:ro разрешено писать в VOLUMES разделе.Как выбрать точку тома в docker-compose.yml?

Любые идеи, как это сделать в docker-compose.yml?

+0

создания тома на хосте и установите оба контейнера там? –

+0

У меня есть данные в container1 on/path/a и вы хотите получить к нему доступ в container2 on/path/b. –

ответ

4

Вы можете создать том на хосте с привязкой для обоих контейнеров.

Пример:

mkdir -p /mnt/shared-volume 
docker run --name container1 -v /mnt/shared-volume:/path/a mycontainer 
docker run --name container2 -v /mnt/shared-volume:/path/b mycontainer 

То же самое с docker-compose.yml:

volumes: 
- /mnt/shared-volume:/path/a 

А для другого контейнера:

volumes: 
- /mnt/shared-volume:/path/b 

Альтернативное решение:

Создайте контейнер объема данных!

Пример:

docker run --name datacontainer -v /mnt/shared-volume mycontainer /bin/true 
docker run --name container1 --volumes-from datacontainer mycontainer 
docker run --name container2 --volumes-from datacontainer mycontainer 
+0

Как я перевернул до того, как у меня есть данные в контейнере1 в/path/a и вы хотите получить к нему доступ в контейнере2 в/path/b. Если я вас понимаю, данные должны быть в/mnt/shared-volume? –

+1

Я не думаю, что это возможно без перезапуска контейнера1 и выполнения привязки к хосту, который может монтировать другой контейнер. Или вы можете сделать отдельный контейнер объема данных. Я здесь не прав? Кто угодно? –

+1

См.: Https://docs.docker.com/userguide/dockervolumes/ для дальнейшей ссылки. Дайте знать, если у вас появятся вопросы! –