Docker стал важным инструментом контейнеризации, позволяющим разработчикам создавать легкие портативные приложения. При работе с Docker могут возникнуть ситуации, когда вам потребуется скопировать образы Docker с одного хоста на другой. Независимо от того, мигрируете ли вы на новый сервер, настраиваете среду разработки или делитесь образами Docker с коллегами по команде, в этой статье будут рассмотрены несколько методов выполнения этой задачи. Мы предоставим примеры кода и пошаговые инструкции для каждого метода, чтобы обеспечить бесперебойный процесс передачи изображений.
Метод 1: сохранение и загрузка Docker
Команды Docker saveи loadпозволяют экспортировать и импортировать образы Docker в виде файлов tarball. Выполните следующие действия:
-
Экспортировать образ Docker на исходный хост:
$ docker save -o image.tar image_name:tag -
Перенесите экспортированный файл изображения на целевой хост, используя протокол передачи файлов, например SCP или SFTP.
-
Импортируйте образ Docker на целевой хост:
$ docker load -i image.tar
Метод 2: экспорт и импорт Docker
Подобно предыдущему методу, вы можете использовать команды exportи importдля передачи изображений Docker. Однако этот метод экспортирует изображение в виде файла tarball, включая файловую систему и метаданные контейнера:
-
Экспортируйте образ Docker на исходный хост:
$ docker export -o image.tar container_id -
Перенесите экспортированный файл изображения на целевой хост.
-
Импортируйте образ Docker на целевой хост:
$ docker import image.tar image_name:tag
Метод 3: Docker Push and Pull
Если у вас есть доступ к реестру Docker, вы можете использовать команды pushи pullдля передачи образов Docker:п>
-
Пометьте образ Docker URL-адресом реестра на исходном хосте:
$ docker tag image_name:tag registry_url/image_name:tag -
Отправьте образ Docker в реестр:
$ docker push registry_url/image_name:tag -
На целевом хосте извлеките образ Docker из реестра:
$ docker pull registry_url/image_name:tag
Метод 4: Docker Commit and Save
В случаях, когда вы хотите передать измененный контейнер в виде изображения, вы можете использовать команды commitи save:
-
Зафиксируйте изменения, внесенные в контейнер на исходном хосте:
$ docker commit container_id image_name:tag -
Сохраните зафиксированный контейнер как образ Docker:
$ docker save -o image.tar image_name:tag -
Перенесите экспортированный файл изображения на целевой хост.
-
Импортируйте образ Docker на целевой хост:
$ docker load -i image.tar
Метод 5: копирование из контейнера в контейнер
Для сценариев, когда у вас есть два хоста в одной сети, вы можете напрямую скопировать образ Docker из одного контейнера в другой:
-
Запустите временный контейнер на исходном хосте с образом Docker:
$ docker run --name temp_container image_name:tag -
Скопируйте образ Docker в целевой контейнер на целевом хосте:
$ docker cp temp_container:/path/to/image destination_container:/path/to/
Копирование образов Docker между хостами — обычная задача в различных сценариях, а наличие нескольких методов в вашем распоряжении обеспечивает гибкость и удобство. В этой статье мы рассмотрели пять эффективных методов, включая сохранение и загрузку Docker, экспорт и импорт, отправку и извлечение, фиксацию и сохранение, а также копирование из контейнера в контейнер. Каждый метод предусматривает свой подход, что позволяет вам выбрать наиболее подходящий для ваших конкретных требований. Следуя пошаговым инструкциям и используя предоставленные примеры кода, вы сможете легко переносить образы Docker между хостами и оптимизировать процессы разработки и развертывания.