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.