Как передать файл в контейнер Docker для использования с контейнером? - PullRequest
1 голос
/ 20 февраля 2020

Я хотел бы передать файл из хост-системы в контейнер во время выполнения. Я хочу запустить инструмент CLI в контейнере и использовать файл в качестве аргумента инструмента CLI. Можно ли изменить следующую команду: docker run -it --rm --name <container-name> для достижения того, что я хочу сделать. Команда docker cp не работает для того, что мне нужно, поскольку она не запускается из контейнера, и мне нужно передать имя файла в качестве аргумента.

1 Ответ

3 голосов
/ 20 февраля 2020

Я обычно использую трюк -v "$PWD:$PWD" -w "$PWD". Запустите контейнер и том, смонтируйте текущий рабочий каталог хоста в контейнер по тому же пути и установите рабочий каталог по тому же пути.

Так, например, если я хочу перекодировать wav-файл на хосте в mp3-файл, используя ffmpeg, запущенный в контейнере, я бы сделал:

docker run --rm -v "$PWD:$PWD" -w "$PWD" mwader/static-ffmpeg:4.2.2 -i file.wav file.mp3

Вы также можете добавить -u $UID:$GROUPS, если вы не уверены, какой пользователь по умолчанию использует изображение.

...