Сохранение нескольких образов в архив tar
На предыдущем этапе вы узнали, как сохранить один Docker-образ. На этом этапе вы узнаете, как сохранить несколько Docker-образов в один файл архива tar. Это удобно, когда вам нужно объединить несколько образов для распространения или резервного копирования.
Сначала давайте загрузим еще один Docker-образ, чтобы иметь больше одного образа для сохранения. Мы загрузим образ alpine
, который представляет собой легковесное Linux-распределение.
docker pull alpine
Вы должны увидеть вывод, указывающий на то, что образ alpine
загружается и скачивается.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Теперь у вас есть как образ hello-world
, так и образ alpine
на локальной машине. Вы можете проверить это, вывел список локальных образов:
docker images
В выводе должны быть указаны как hello-world
, так и alpine
.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ...
alpine latest ... ... ...
Для сохранения нескольких образов в один архив tar вы просто перечисляете имена образов после имени выходного файла в команде docker save
. Синтаксис: docker save -o <output_file.tar> <image1_name> <image2_name> ...
.
Мы сохраним как образ hello-world
, так и образ alpine
в файл с именем images.tar
в каталоге ~/project
.
docker save -o images.tar hello-world alpine
После выполнения этой команды в каталоге ~/project
будет создан файл с именем images.tar
. Этот файл содержит как Docker-образ hello-world
, так и Docker-образ alpine
.
Вы можете проверить, что файл был создан, и узнать его размер с помощью команды ls -lh
. Размер будет больше, чем у файла hello-world.tar
из предыдущего шага, так как он содержит два образа.
ls -lh images.tar
Вы должны увидеть вывод, похожий на этот:
-rw-r--r-- 1 labex labex ... images.tar
Для подтверждения того, что оба образа включены в архив, вы можете вывести список содержимого tar-файла с помощью команды tar -tf
.
tar -tf images.tar
В выводе должны быть показаны файлы, связанные с обоими образами, включая их манифесты и данные слоев. Вы должны увидеть записи, такие как hello-world/
и alpine/
.
...
hello-world/
hello-world/manifest.json
...
alpine/
alpine/manifest.json
...
Теперь этот единый tar-файл можно использовать для загрузки обоих образов на другую систему с помощью команды docker load
.