Как передать файл из одного докер контейнера в другой и запустить его там?
Один контейнер создает файл с иходным текстом программы, после этого я хочу забилдить другой контейнер, запустить в нем этот самый файл, получить результат и удалить контейнер в котором запускала. Как это правильно делают? как должны взаимодействовать контейнеры?
Правильный ли вариант, что второй контейнер находится внутри первого?
Ответы (1 шт):
«docker-контейнер» — это всего лишь процесс, запущенный в ограниченном, специально подготовленном для него окружении.
с участием программы docker всё точно так же, как и без её участия: запускаете один процесс, который формирует файл, затем запускаете другой процесс, который ещё что-нибудь делает с этим файлом.
единственное в данном случае отличие: так как процессы запускаются с собственными файловыми системами, надо позаботиться о том, чтобы файл сохранялся после завершения первого процесса, а потом его же можно было передать второму процессу.
например, при запуске обоих процессов можно воспользоваться опцией -v и передавать им одно и то же значение в этой опции:
$ docker run -v /путь/к/каталогу/с/вашим/файлом:/путь/внутри/контейнера ...
тогда оба процесса увидят содержимое каталога вашей файловой системы /путь/к/каталогу/с/вашим/файлом в своей файловой системе по пути /путь/внутри/контейнера. первый процесс создаст там файл, второй процесс воспользуется этим файлом.