Docker. Перенос образа на другой хост.

Имеем docker контейнер который нужно перенести на другой хост. По сути наша задача сводится с переносу образа на новый хост и запуску контейнера из этого образа.

Смотрим на контейнер

user@host:/# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                           NAMES
262202e83aeb        priv/container      "bash"              2 hours ago         Up 2 hours          80/tcp, 0.0.0.0:443->443/tcp   ACME

Посмотреть какие тома присоединены к контейнеру можно в разделе «Mounts» в выводе команды:

docker inspect %ID_контейнера%

Сохранение образа. На первом месте куда сохранять, на втором что сохранять.

docker save -o /%путь%/image.tar priv/container

Копируем тома(volumes). По умолчанию лежат «/var/lib/docker/volumes/». На первом месте указываем куда копировать, на втором что:

 tar -cvf ./data_vol.tar /var/lib/docker/volumes/data_vol/

Переносим образ и тома на новый хост, можно сделать при помощи «scp». Если порт SSH не стандартный, нужно его указать ключом «-P». Ключ «-P» должен быть на первом месте. Далее указываем что копировать, потом хост куда копировать в формате %имя_пользователя%@%адрес_хоста%:%путь_куда_копировать%. При указании «~» в пути файл скопируется в домашнюю папку пользователя.

scp -P 123 ./image.tar user@123.123.123.2:~

По завершении копирования тома нужно разархивировать и закинуть на место(по умолчанию «/var/lib/docker/volumes/»):

tar -xvf /home/user/data_vol.tar

Кормим докер нашим образом:

docker load -i /home/user/image.tar

После всех этих процедур докер увидит образ и позволит создать из него контейнер.

Оставьте комментарий