The blog about containerisation, virtual machines and useful shell snippets and findings

Еще один быстрый скрипт для бекапа mysql из docker

Мой предыдущий способ “просто запусти и залинкуй контейнер” разбился о проблемы с поддержкой mysql версии 5.7 и выше и то, что docker-compose версии 2 не поддерживает публикацию environment переменных слинкованного контейнера.

Поэтому пришлось разработать свой, крайне простой способ для выгрузки mysql бекапа из mysql контейнера. Поскольку у mysql свой хитры entrypoint, простая замена CMD не работала.

Вот работающий код.

docker run \
    --rm \
    --link container_db_1:db \
    --entrypoint "/usr/bin/mysqldump" mysql:5 -hdb -uroot -proot database > ./backup/mysql-latest.sql

обратите внимание, что > ./backup/mysql-latest.sql завернет вывод из контейнера в файл на хосте, а не внутри.

В качестве образа mysql:5 используйте тот образ, который уже используется в вашем проекте (mysql:5.6, например).

Чуть позднее сделаю рецепт для ansible.