Как создать Docker-контейнер, который каждую ночь делает резервную копию базы данных MySQL? - PullRequest
0 голосов
/ 30 марта 2019

Здравствуйте, я создал образ MySQL и с этой командойне знаю, что делать и как сделать БД в этом контейнере и задание на резервное копирование

Если кто-то может помочь мне шаг за шагом, что делать

1 Ответ

0 голосов
/ 30 марта 2019

Вы можете использовать службу cron из вашей хост-системы для запуска следующей команды, как описано в документации для образа docker mysql :

Пример crontab для запуска команды каждую ночь в2:00 утра:

00 02 * * * /usr/bin/docker exec db-mysql sh -c 'exec mysqldump --all-databases -uroot -p"my-secret-pw"' > /some/path/on/your/host/all-databases.sql

В качестве альтернативы вы можете запустить другой контейнер, предназначенный только для этой задачи, такой как deitch / mysql-backup :

docker run --name db-mysql -d \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    -e MYSQL_USER=my-user \
    -e MYSQL_PASSWORD=my-user-password \
    -e MYSQL_DATABASE=my-db \
    mysql:latest

docker run -d --restart=always \
    --name=db-backup \
    -e DB_DUMP_BEGIN=0200 \
    -e DB_SERVER=db-mysql \
    -e DB_USER=my-user \
    -e DB_PASS=my-user-password \
    -e DB_NAMES=my-db \
    -e DB_DUMP_TARGET=/db \
    -v /somewhere/on/your/host/:/db \
    databack/mysql-backup

Также необходимо убедиться, что папка /somewhere/on/your/host/ доступна для записи пользователям группы 1005:

sudo chgrp 1005 /somewhere/on/your/host/
sudo chmod g+rwX /somewhere/on/your/host/

Но этот контейнер должен иметь средство для подключения к вашему db-mysql контейнеру.Для этого вы создаете сеть докеров и подключаете к ней оба контейнера:

docker network create mysql-backup-net
docker network connect mysql-backup-net db-backup
docker network connect mysql-backup-net db-mysql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...