docker: получение файлов из одного контейнера в другой - PullRequest
0 голосов
/ 22 марта 2020

У меня есть 2 docker контейнеров, которые я создал из 2 Dockerfiles.

docker run container1 # It updates a txt (update.txt) file every minutes and store it in the same container

docker run container2 --link container1 # A web server which in intended to read the updated file in container1

Теперь я хочу получить доступ к файлу update.txt в container2, но я не могу этого сделать. Я не хочу просто копировать файл, так как он станет stati c, но я хочу прочитать динамически обновляемый файл, чтобы прочитать последние обновления. Кто-нибудь может предложить выход?

Ответы [ 2 ]

3 голосов
/ 22 марта 2020

Используйте именованный том для хранения update.txt в этом томе на хосте.

Смонтируйте этот том в обоих контейнерах.

Все изменения, которые записывает контейнер 1, будут доступны в контейнере 2.

0 голосов
/ 22 марта 2020

Сначала создайте том docker с помощью приведенной ниже команды

$ docker volume create --name sharedVolume
sharedVolume

А затем запустите первый контейнер, подключив созданный выше том, и запишите данные в то место, где будет смонтирован том.

$ docker run -it -v sharedVolume:/dataToWrite ubuntu
root@1021d9260d7b:/# echo "DATA Written" >> /dataToWrite/Example.txt
root@1021d9260d7b:/# cat /dataToWrite/Example.txt
DATA Written

Теперь запустите второй контейнер и смонтируйте тот же том, который вы создали выше, и проверьте, присутствует ли тот же файл во втором контейнере или нет

$ docker run -it -v sharedVolume:/dataToWrite alpine
/ # cat /dataToWrite/Example.txt
DATA Written

Как вы можете видеть выше первый контейнер - Ubuntu, а второй - Alpine. Содержимое, которое записано в первом контейнере, присутствует во втором контейнере.

...