Найти тему

миграция docker mailcow на новый сервер docker

так уж вышло, что виртуалка на 2ТБ оказалась избыточной для моих мощностей и потребностей, так-что теперь задача перетащить всё на новый такой же сервер mailcow в docker, только не заниматься всем с нуля, а просто переместить контейнеры с сервака на сервак.

Пользуемся официальной документацией по перезду, она тут, пишу примерно тоже самое, но на понятном мне языке, по этому поехали.

0. у вас уже есть снапшот виртуалки с текущим состоянием сервера, а также где-то в другом месте лежит полный бэкап этой виртуалки, ведь да? Если так, то можно начинать.

1. делаем новый сервер, как показано тут, включая установку docker, portainer пока ставить не нужно, так-как скрипт миграции грохает все volume при миграции сервера со старого на новый.

для порядка определимся с терминами, старый сервер назовем - старый, а новый - новый

2. заходим на старый по ssh и останавливаем docker

systemctl stop docker.service
systemctl status docker.service

3. устанавливаем сервер синхронизации

sudo apt -y install rsync
sudo apt update

4. заходим на новый сервер и тоже устанавливаем rsync

sudo apt -y install rsync
sudo apt update

также нам надо включить вход на сервер по ssh от root

nano /etc/ssh/sshd_config

в файлик добавляем строку, после завершения переноса сервера лучше эту строчку удалить

PermitRootLogin yes

сохраняем файл с заменой ctrl+x

перезапускаем ssh

sudo systemctl restart ssh

5. заходим на старый сервер и подключаемся к новому по Rsync

вместо bibaboba.com пишем адрес нашего нового сервака (имеем в виду, если на новом сервере были контейнеры, то после этих команд их там уже не будет) подразумевается перенос на девственно пустой docker

rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@bibaboba.com:/opt/mailcow-dockerized

rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ smtpadmin@bibaboba.com:/var/lib/docker/volumes

сколько-то ждем, у меня ушло около 25 минут

6. останавливаем старый сервер

cd /opt/mailcow-dockerized
docker compose down
systemctl stop docker.service

повторяем команды из шага 5

rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@bibaboba.com:/opt/mailcow-dockerized
rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ smtpadmin@bibaboba.com:/var/lib/docker/volumes

7. идем на новый сервер и запускаем docker

systemctl start docker.service

и подключаем скопированные контейнеры

cd /opt/mailcow-dockerized
docker compose pull

собственно запускаем и проверяем

docker compose up -d

надеюсь вы тоже рады, что всё так просто, идем в админку и сразу направляемся в конфиг DNS проверить статус

-2

и смотрим, что всё настроено верно, о том, как должно быть тут,

-3

после проверяем всё тестовым письмом на https://www.mail-tester.com, должно быть так

-4

горжусь тобой заюш