Как передать файл из одного докер контейнера в другой и запустить его там?

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

Правильный ли вариант, что второй контейнер находится внутри первого?


Ответы (1 шт):

Автор решения: aleksandr barakin

«docker-контейнер» — это всего лишь процесс, запущенный в ограниченном, специально подготовленном для него окружении.

с участием программы docker всё точно так же, как и без её участия: запускаете один процесс, который формирует файл, затем запускаете другой процесс, который ещё что-нибудь делает с этим файлом.

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

например, при запуске обоих процессов можно воспользоваться опцией -v и передавать им одно и то же значение в этой опции:

$ docker run -v /путь/к/каталогу/с/вашим/файлом:/путь/внутри/контейнера ...

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

→ Ссылка