Docker стал популярной платформой для создания, доставки и запуска приложений в контейнерах. Контейнеры Docker легковесны и портативны, что делает их идеальными для разработчиков и системных администраторов, которым необходимо быстро и эффективно развертывать приложения.
Одной из ключевых особенностей Docker является возможность создавать образы и запускать их, образы являются строительными блоками контейнеров.
Чтобы обмениваться образами Docker между компьютерами или с другими пользователями, их можно отправить в реестр Docker, например в Docker Hub. Это позволяет пользователям легко делиться своими образами с другими, развертывать их в разных средах и совместно работать над приложениями.
Однако в некоторых случаях пользователям может потребоваться распространять образы Docker традиционным способом или без подключения к Интернету. В таких ситуациях может быть очень полезен метод сохранения и загрузки образов в файл. Сохранение образов Docker в файл позволяет пользователям создавать переносимый автономный архив образов, который можно распространять с помощью USB-накопителей, DVD-дисков или других физических носителей.
Это может быть особенно полезно для организаций, которым необходимо развертывать образы Docker в удаленных или изолированных средах, например на кораблях, в самолетах или в сельской местности с ограниченным подключением к сети. Сохраняя образы в файл, пользователи могут легко переносить их в эти места и загружать в Docker на целевом компьютере.
Сохранение образа Docker в tar файл
Откройте окно терминала или командную строку.
Выполните следующую команду, чтобы сохранить образ Docker в файл:
docker save -o <file-name.tar> <image-name>
Замените на имя, которое вы хотите присвоить сохранённому файлу, и на имя образа Docker, который вы хотите сохранить.
Приведённая выше команда сохранит образ Docker в виде архива в текущем рабочем каталоге.
Чтобы убедиться, что изображение сохранено правильно, выполните следующую команду:
ls -l <file-name.tar>
При этом будет отображен размер файла и другая информация о сохраненном файле.
Загрузка образа Docker из tar файла
Скопируйте сохраненный файл на целевой компьютер.
Откройте окно терминала или командную строку на целевом компьютере.
Выполните следующую команду, чтобы загрузить образ Docker из сохраненного файла:
docker load -i <file-name.tar>
Замените на имя сохраненного файла.
Приведённая выше команда загрузит образ Docker из сохранённого файла в локальный репозиторий образов Docker на целевом компьютере. Затем вы сможете использовать этот образ как обычно.
Чтобы убедиться, что изображение загружено правильно, выполните следующую команду:
docker images
Откроется список всех образов Docker в локальном репозитории, включая только что загруженный образ.
Таким образом, сохранение и загрузка образов Docker в файл — это простой и эффективный способ распространения образов Docker традиционным способом или в автономных средах. Выполнив эти действия, пользователи смогут легко переносить свои образы, создавать резервные копии и развертывать приложения Docker в самых разных средах.
Команды docker export и docker import
Команды docker export
и docker import
используются для работы с файловыми системами контейнеров, а не с образами Docker. Они позволяют экспортировать файловую систему контейнера в архив и импортировать её обратно в Docker. Вот как они работают:
docker export — Выполняет экспорт файловой системы контейнера
Эта команда экспортирует файловую систему работающего или остановленного контейнера в tar-архив. Она не сохраняет метаданные образа, такие как история слоёв, переменные окружения, команды по умолчанию и т.д.
Синтаксис:
docker export <container_id_or_name> -o <output_file.tar>
Пример:
docker export my-container -o my-container-fs.tar
Где:
my-container
— имя или ID контейнера.-o my-container-fs.tar
— указывает имя выходного файла.
Это полезно, если вам нужно сохранить состояние файловой системы контейнера для дальнейшего использования.
docker import — Выполняет импорт файловой системы в новый образ
Эта команда создаёт новый Docker-образ из tar-архива, содержащего файловую систему.
Синтаксис:
docker import <path_to_file.tar> <repository>:<tag>
Пример:
docker import my-container-fs.tar my-new-image:latest
Где:
my-container-fs.tar
— путь к tar-архиву.my-new-image:latest
— имя и тег нового образа.
Примечание:
- При импорте можно указать дополнительные параметры, такие как
--change
, чтобы изменить конфигурацию образа (например, команду по умолчанию или переменные окружения). - Импортированный образ будет содержать только один слой, в отличие от многослойных образов, созданных с помощью
docker build
.
Пример использования
Экспортируем файловую систему контейнера:
docker export my-container -o my-container-fs.tar
Импортируем файловую систему в новый образ:
docker import my-container-fs.tar my-new-image:latest
Проверяем, что образ создан:
docker images
Запускаем контейнер из нового образа:
docker run -it my-new-image:latest
Разница между docker save/load и docker export/import
Команда | Сохраняет слои образа | Сохраняет метаданные | Работает с образами | Работает с контейнерами |
---|---|---|---|---|
docker save / load | Да | Да | Да | Нет |
docker export / import | Нет | Нет | Нет | Да |
docker save
/load
— используются для работы с образами Docker, сохраняя все слои и метаданные.docker export
/import
— используются для работы с файловыми системами контейнеров, без сохранения слоёв и метаданных.
Выбор команды зависит от вашей задачи: если нужно сохранить именно образ, используйте docker save/load
. Если нужно сохранить состояние файловой системы контейнера, используйте docker export/import
.
Перевод статьи: Saving and Loading Docker Images