Qwentor
@Qwentor
Веб-программист

Как сделать копию бд, крутящейся в докере (само хранилище на volume) с помощью xtrabackup?

xtrabackup на хосте
ему для копирования базы необходим доступ к /var/run/mysqld/mysqld.sock
MariaDB в контейнере
Запущено так:
docker run --name 10.1.23-mariadb -p 3308:3306 -v /opt/test/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mariadb:10.1.23


Монтирование /var/run/mysqld/ не помогает - файл не появляется на хосте и еще и исчезает в контейнере - база перестает работать.
Как это все организовать?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Qwentor
@Qwentor Автор вопроса
Веб-программист
Короче так:
echo /var/lib/docker/aufs/diff/$(cat /var/lib/docker/image/aufs/layerdb/mounts/$(docker inspect --format="{{.Id}}" 10.1.23-mariadb)/mount-id)/run/mysqld/mysqld.sock

и получаю прямой путь до сокета

пофиг, что он может меняться после пересоздания, т.к. это только для теста, да и если будет в реале такая конфигурация - my.cnf можно генерировать скриптом
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Xuxicheta
@Xuxicheta
инженер
https://github.com/martin-helmich/docker-xtrabackup
может поможет

а вообще вы можете смонтировать именно /var/run/mysqld/mysqld.sock, но этот файл уже должен быть до запуска контейнера.
Ответ написан
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Не надо смешивать контейнеры с процессами на хосте.
Монтировать директорию для бэкапов заранее, запускать xtrabackup из контейнера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.