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

Простой способ сделать бекап MySQL в Docker контейнере

существует такой специальный контейнер confirm/mysql-backup, который создан, что бы делать бекапы

для этого запустите контейнер с маппингом my_local_backup_dir:/backups и будет создан свежий бекап и положен в вашу my_local_backup_dir.

docker run --name demo_backup --link demo_db -v /var/demo_backup:/backup -d confirm/mysql-backup

Для восстановления добавьте ключ окружения MODE=RESTORE

docker run --name demo_backup --link demo_db -v /var/demo_backup:/backup -d confirm/mysql-backup -e MODE=RESTORE

Подробнее здесь https://blog.confirm.ch/backup-mysql-mariadb-docker-container/

Рецепт для Ansible

- name: backup mysql container
  hosts: coreos
  tasks:
    - name: backup mysql
      docker_container:
        name: mysql-backup
        image: confirm/mysql-backup
        links:
          - mprokopovmichellekievua_db_1
        volumes:
          - /home/core/sql:/backup

после выполнения контейнера будет создан бекап следующего вида:
каталог export-20160714-124628
в котором будут отдельно файлы схемы и данных по таблицам:

metadata michelle_wordpress.wp_postmeta-schema.sql.gz michelle_wordpress.wp_term_taxonomy-schema.sql.gz michelle_wordpress.wp_usermeta.sql.gz
michelle_wordpress.wp_commentmeta-schema.sql.gz michelle_wordpress.wp_postmeta.sql.gz michelle_wordpress.wp_term_taxonomy.sql.gz michelle_wordpress.wp_users-schema.sql.gz
michelle_wordpress.wp_comments-schema.sql.gz michelle_wordpress.wp_posts-schema.sql.gz michelle_wordpress.wp_termmeta-schema.sql.gz michelle_wordpress.wp_users.sql.gz
michelle_wordpress.wp_links-schema.sql.gz michelle_wordpress.wp_posts.sql.gz michelle_wordpress.wp_terms-schema.sql.gz
michelle_wordpress.wp_options-schema.sql.gz michelle_wordpress.wp_term_relationships-schema.sql.gz michelle_wordpress.wp_terms.sql.gz
michelle_wordpress.wp_options.sql.gz michelle_wordpress.wp_term_relationships.sql.gz michelle_wordpress.wp_usermeta-schema.sql.gz