Экспорт контейнера Docker с содержимым установленного объема - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь экспортировать контейнер docker, который использует подключенный локальный том в качестве root, который я запускаю с docker run --privileged -v /path/to/local/files:/root --name cse303dev -it cse303 для монтирования этого локального каталога.

Каков наилучший способ экспорта контейнера и всего содержимого этого локального смонтированного каталога в какой-нибудь простой tar-файл? И затем, как мне легко повторно импортировать этот контейнер и запустить его, чтобы я мог видеть и использовать все эти файлы, скопированные с локального компьютера, который его экспортировал? Это возможно?

1 Ответ

1 голос
/ 07 апреля 2020

Вы почти никогда не «экспортируете» контейнер как таковой . Контейнеры, как правило, предназначены для свободного уничтожения и воссоздания.

В вашем случае у вас уже есть данные, которые вам нужны, хранящиеся вне контейнера (в папке, смонтированной с привязкой, что является простым случаем), так что вы можете просто скопируйте это дерево каталогов в другое место, а затем запустите новую копию контейнера.

(cd /path/to/local/files; tar cvzf ~/local-files.tar.gz .)
scp local-files.tar.gz there:
ssh there

mkdir files
(cd files; tar xvzf ../local-files.tar.gz)
docker run -v $PWD/files:/root cse303

Это сложнее, если вы храните данные в именованном томе. Документация Docker описывает , как сделать резервную копию содержимого именованного тома , и вам придется go выполнить эту процедуру.

...