Мне нужно перехать на новый сервер, на страром хосте есть контейнер докера, который нужно перенести на новый. Как это сделать?
Имеем 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
После всех этих процедур докер увидит образ и позволит создать из него контейнер.
Источник: https://itbru.ru/index.php/2019/05/30/docker-migrate/