Могу ли я подключить один и тот же том к нескольким контейнерам докеров?

Мне нужно передать журналы приложений на смонтированный том. Я хочу подключить один и тот же том ко всем контейнерам докеров, чтобы вести журналы. Является ли это возможным? повлияет ли это на приложение, работающее в каждом контейнере?

docker run -d  --name C1 -v /home/ubuntu/logs:/usr/local/apache/htdocs/ httpd
docker run -d  --name C2 -v /home/ubuntu/logs:/etc/app/logs my-docker-image:latest
docker run -d  --name C3 -v /home/ubuntu/logs:/usr/logs TestImage:latest

person NGN    schedule 17.03.2017    source источник


Ответы (2)


Да, вы можете добавить то же место, что и том, во многие контейнеры докеров.

Кроме того, вы можете использовать --volumes-from, чтобы смонтировать каталог журналов в одном контейнере, на самом деле не выполняющем никаких приложений, а затем использовать тома из этого контейнера в других контейнерах, не повторяя пути везде.

Стоит прочитать тома Docker

person user3012759    schedule 17.03.2017

Я монтирую один и тот же каталог в несколько контейнеров, но для чтения, а не для записи (если ваши журналы записываются в контейнерах. Я думаю, что если они пишут в разные файлы, это должно работать ..

person ItayB    schedule 17.03.2017
comment
Хотел смонтировать бревна. У меня работает много контейнеров докеров, но я сохраняю файл журнала как log.txt для всех запущенных служб. Итак, как я могу отличить, какой файл журнала для какой службы, потому что все файлы журнала используют одно и то же имя? - person NGN; 30.03.2017
comment
Я думаю, вы можете смонтировать определенный файл, а не весь каталог, и дать ему имя diff на хосте: /path/in/container/log.txt:/path/in/host/container1_log.txt - person ItayB; 30.03.2017
comment
@ItayB будьте осторожны с этим, потому что, если ваш файл будет повернут или изменится индексный дескриптор по какой-либо причине, файл в докере больше не будет указывать на файл, который вы ожидаете ... - person user3012759; 14.09.2017