Поиск по сайту:

Как упаковать и перенести образы Docker с одного сервера на другой


Если вы создали образ Docker на своем компьютере для разработки и хотите развернуть его на сервере, вы можете использовать реестр Docker, но в Docker также есть инструменты для сохранения образов в файлы и их загрузки на другой сервер.

Вам не нужен реестр контейнеров

Обычно для передачи сборки контейнера (называемой образом) на удаленный сервер используется реестр контейнеров Docker. Это, безусловно, лучший метод — это единая точка полномочий, позволяющая легко распространять обновления по нескольким серверам. Это также не требует, чтобы вы делали контейнер общедоступным; существует множество отличных реестров частных контейнеров, таких как GCR от Google и ECS от AWS. Docker Hub даже поддерживает частные репозитории. Если вы просто беспокоитесь о конфиденциальности, переключитесь на частный реестр и продолжайте использовать docker push и docker pull.

Однако для тех, кто хочет сделать это по старинке, интерфейс командной строки Docker содержит некоторые инструменты для сохранения изображений в файлы и их загрузки на удаленный сервер.

Чтобы сохранить изображение, вы можете использовать docker save, указав выходной файл, а затем указать имя и тег изображения:

docker save -o ./savedimage imagename:tag

Если вы не укажете тег, Docker упакует все теги.

Это сериализует и сохранит копию изображения в выходном файле. Образ хранится в виде tar-файла. Если вы хотите сохранить его как tar.gz, вы можете опустить флаг -o и направить вывод в gzip:

docker save imagename:tag | gzip > savedimage.tar.gz

Затем вы можете взять этот файл и scp или скопировать его по FTP на целевой сервер. После этого вы можете снова импортировать его с помощью docker load:

docker load -i savedimage

Это сделает образ доступным в целевой системе, как если бы вы запустили docker build . -t имя_изображения. Вы можете использовать его так же, как локально собранный образ с docker container run:

docker container run imagename