Передача файла в докер

Мне нужно передать (вставить) файл или некоторые данные в докер как часть команды run и записать их в файл в контейнере как часть запуска. Есть ли лучший способ сделать это?

Я попробовал это.

cat data.txt |  docker run -a stdin -a stdout -i -t ubuntu /bin/bash -c 'cat >/data.txt'

Но не могу заставить его работать.

Ответ 1

cat setup.json |  docker run -i  ubuntu /bin/bash -c 'cat'

Это сработало для меня. Удалить -t. Также не нужен -a.

Ответ 2

Лучшее решение состоит в том, чтобы сделать (смонтировать) папку хоста доступной для контейнера Docker. Например. как это

docker run -v /Users/<path>:/<container path> ... 

Вот /Users/<path> - папка на вашем хост-компьютере и путь монтирования <container path> внутри контейнера.

Также см. страницу руководства "Управление данными в контейнерах".

ОБНОВЛЕНИЕ другой пример доступа к внешним файлам из Docker Containers.