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

Docker — это платформа для создания, развёртывания и управления приложениями в контейнерах: легковесных, автономных и переносимых окружениях, которые работают практически в любой среде. Иногда контейнер нужно перенести с одного сервера на другой — например, вы разрабатывали приложение на локальном компьютере и хотите перенести его на сервер для тестирования или развёртывания. В этой статье я расскажу, как запаковать Docker-контейнер и перенести его на другой сервер без потери данных — всего за шесть шагов.

Сама концепция контейнеров позволяет разработчикам и системным администраторам собирать приложения в лёгкие переносимые окружения: это упрощает процесс разработки, тестирования и развёртывания, а также уменьшает время, затрачиваемое на настройку и конфигурацию окружений.

Шаг 1. Останавливаем контейнер

Перед запаковкой контейнер необходимо остановить. Используйте команду docker stop:

$ docker stop <container_name>

Здесь <container_name> — это имя контейнера, который вы хотите остановить.

Шаг 2. Сохраняем контейнер в образ

Чтобы запаковать контейнер, необходимо сохранить его в образ. Используйте команду docker commit:

$ docker commit <container_name> <image_name>

Здесь <container_name> — это имя остановленного контейнера, а <image_name> — имя образа, в который будет сохранён контейнер.

Шаг 3. Экспортируем образ в файл

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

$ docker save <image_name> > <file_name>.tar

Здесь <image_name> — это имя образа, который нужно экспортировать, а <file_name> — имя файла, в который будет экспортирован образ.

Шаг 4. Переносим файл на другой сервер

Скопируйте файл <file_name>.tar на другой сервер. Для этого можете использовать команду scp:

$ scp <file_name>.tar <user>@<server_ip>:<path>

Здесь <user> — это имя пользователя на удалённом сервере, <server_ip> — IP-адрес удалённого сервера, а <path> — путь к месту, где нужно сохранить файл на удалённом сервере.

Шаг 5. Импортируем образ на другом сервере

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

$ docker load < <file_name>.tar

Шаг 6. Запускаем контейнер

После импорта образа можно запустить контейнер на другом сервере. Используйте команду docker run:

$ docker run -d --name <container_name> <image_name>

Здесь <container_name> — это имя контейнера, который вы хотите запустить, а <image_name> — имя образа, который вы хотите использовать для запуска контейнера.

На этом всё!


Статья впервые опубликована 02.04.2023 на openode.xyz; перенесена и обновлена 04.08.2026.