среда, 6 марта 2019 г.

Docker: работа с файлами

Посмотрим, как создавать файлы в контейнеры, а потом копировать их на жесткий диск своей физической машины.

Запустим контейнер с Redis на основе Alpine:
docker run --name mredis -d redis:alpine
Флажок -d, кстати, означает detach -открепленный режим (без доступа к терминалу, по сути фоновый).

Запустим внутри контейнера командную оболочку ash (в Alpine нет bash, только sh и ash):
docker exec -it mredis /bin/ash
Флаги: -i - интеракт режим (stdin остается открытым, даже если к нему нет прикрепления), -t  - открыть псевдотерминал.

В терминале выполним:
echo "Hello world" > /home/test.txt
Файл /home/test.txt будет существовать внутри контейнера. После выхода из оболочки (командой exit) он продолжит существовать. Его можно скопировать на диск так:
docker exec -it mredis cat /home/test.txt  > HELLO.txt

Файл HELLO.txt будет размещен в текущей директории (из которой выполняем команды над контейнерами).

Комментариев нет: