Резервное копирование и восстановление

ВАЖНО
Если вы используете внешнюю базу данных, нужно производить дополнительное резервное копирование и восстановление на стороне этой базы данных.

Выбор метода резервного копирования и восстановления зависит от используемого типа хранения данных: bind mount или именованный том (named volume).

ПРИМЕЧАНИЕ
Процедуру резервного копирования и восстановления также можно использовать для миграции данных ADCM между типами хранения — с bind mount на именованный том или в обратном направлении.

Резервное копирование

Bind mount

Чтобы выполнить резервное копирование данных при использовании bind mount, выполните следующие действия:

  1. Остановите контейнер ADCM:

    $ sudo docker stop adcm
  2. Перейдите в директорию на хосте, используемую для хранения данных ADCM (по умолчанию /opt/adcm):

    $ cd /opt/adcm
  3. Создайте резервную копию директории с данными. Резервная копия будет сохранена в домашней директории текущего пользователя:

    $ sudo tar czvf ~/backup.tar.gz .
  4. Запустите контейнер ADCM:

    $ sudo docker start adcm

Именованный том

Чтобы выполнить резервное копирование данных при использовании именованного тома, выполните следующие действия:

  1. Остановите контейнер ADCM:

    $ sudo docker stop adcm
  2. Создайте архив данных из тома с помощью временного контейнера (в примере используется том adcm-data):

    $ sudo docker run --rm \
        -v adcm-data:/adcm/data \
        -v ~:/backup \
        alpine \
        tar czvf /backup/backup.tar.gz -C /adcm/data .
  3. Запустите контейнер ADCM:

    $ sudo docker start adcm

Восстановление данных

Bind mount

Чтобы выполнить восстановление данных при использовании bind mount, выполните следующие действия:

  1. Остановите контейнер ADCM:

    $ sudo docker stop adcm
  2. Создайте новую директорию на хосте:

    $ sudo mkdir /opt/adcm-restored
  3. Перейдите в созданную директорию:

    $ cd /opt/adcm-restored
  4. Восстановите данные из предварительно созданной резервной копии:

    $ sudo tar xvf ~/backup.tar.gz
  5. Удалите существующий контейнер:

    $ sudo docker container rm adcm
  6. Убедитесь, что права на каталог с восстановленными данными принадлежат пользователю 10001:10001. При необходимости измените владельца:

    $ sudo chown -R 10001:10001 /opt/adcm-restored
    ПРИМЕЧАНИЕ

    Если переиспользование имени контейнера adcm не требуется, можно пропустить текущий шаг и на следующих шагах использовать новое имя вместо adcm.

  7. Создайте новый контейнер ADCM с теми же параметрами запуска, которые использовались для исходного контейнера. В качестве директории укажите /opt/adcm-restored вместо /opt/adcm:

    $ sudo docker create \
        --name adcm \
        -p 8000:8000 \
        -v /opt/adcm-restored:/adcm/data \
        -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
        -e DB_PORT="<DATABASE_TCP_PORT>" \
        -e DB_USER="<DATABASE_USERNAME>" \
        -e DB_NAME="<DATABASE_NAME>" \
        -e DB_PASS="<DATABASE_USER_PASSWORD>" \
        hub.arenadata.io/adcm/adcm:<version>

    где <version> — это необходимая версия Docker-образа ADCM. Допускается использовать номер версии, равный или больший, чем версия ADCM, для которой была создана резервная копия. Не рекомендуется обновлять ADCM более чем на пять минорных версий. Понижение версии ADCM не поддерживается. Дополнительную информацию о процедуре обновления можно получить в статье Обновление.

  8. Запустите новый контейнер ADCM:

    $ sudo docker start adcm

Именованный том

Чтобы выполнить восстановление данных при использовании именованного тома, выполните следующие действия:

  1. Остановите контейнер ADCM:

    $ sudo docker stop adcm
  2. Удалите существующий контейнер:

    $ sudo docker container rm adcm
  3. Удалите существующий именованный том и создайте новый для восстановления данных:

    $ sudo docker volume rm adcm-data
    $ sudo docker volume create adcm-data
  4. Распакуйте архив с резервной копией внутрь нового тома через временный контейнер:

    $ sudo docker run --rm \
        -v adcm-data:/adcm/data \
        -v ~:/backup \
        alpine \
        tar xvf /backup/backup.tar.gz -C /adcm/data
  5. Создайте новый контейнер ADCM с теми же параметрами запуска, указав том adcm-data:

    $ sudo docker create \
        --name adcm \
        -p 8000:8000 \
        -v adcm-data:/adcm/data \
        -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
        -e DB_PORT="<DATABASE_TCP_PORT>" \
        -e DB_USER="<DATABASE_USERNAME>" \
        -e DB_NAME="<DATABASE_NAME>" \
        -e DB_PASS="<DATABASE_USER_PASSWORD>" \
        hub.arenadata.io/adcm/adcm:<version>

    где <version> — необходимая версия Docker-образа ADCM. Допускается использовать версию ADCM, равную версии, для которой была создана резервная копия, или более новую. Не рекомендуется обновлять ADCM более чем на пять минорных версий. Понижение версии ADCM не поддерживается. Дополнительную информацию о процедуре обновления можно получить в статье Обновление.

  6. Запустите новый контейнер ADCM:

    $ sudo docker start adcm
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней