dockerで作成したphpIPAMのDBをバックアップする

dockerで作成したphpIPAMのDBをバックアップする

dockerで構築したphpIPAMmysqlで使用しているmysqlコンテナの、DBバックアップを行う手順を記述。ここでは、構築した際に自分が利用したymlの記述に従い変数を設定してます。

環境

  • OS CentOS Linux release 7.7.1908 (Core)
  • docker 19.03.8
  • docker-compose 1.25.4

※IPアドレス 管理ツール「phpIPAM」のdockerでの構築手順はこちら

docker-compose.yml

使用したymlの内容です。

version: '3'

services:
  phpipam-web:
    image: phpipam/phpipam-www:latest
    ports:
      - "3030:80"
    environment:
      - TZ=Asia/Tokyo
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - IPAM_DATABASE_WEBHOST=%
    restart: unless-stopped
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    image: phpipam/phpipam-cron:latest
    environment:
      - TZ=Asia/Tokyo
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - SCAN_INTERVAL=1h
    restart: unless-stopped
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
    restart: unless-stopped
    volumes:
      - phpipam-db-data:/var/lib/mysql

volumes:
  phpipam-db-data:
  phpipam-logo:

DBバックアップ

上記のymlファイルに記述している内容の通りに、コマンドを作成します。

  • コンテナ名 : phpipam_phpipam-mariadb_1
  • mysql rootパスワード : my_secret_mysql_root_pass
  • バックアップファイル保存先 : /home/testsuser/phpipam/db-back.sql

保存先は、任意の保存先を記述して下さい。上記は自分の環境となります。

docker exec phpipam_phpipam-mariadb_1 sh -c 'exec mysqldump --all-databases -uroot -p"my_secret_mysql_root_pass"' > /home/testsuser/phpipam/db-back.sql

上記コマンドを実行すれば、 /home/testsuser/phpipam/db-back.sql ( 任意の保存先 ) にバックアップが作成されます。

リストア

リストアは下記のコマンドで可能

docker exec -i {コンテナ名} sh -c 'exec mysql -uroot -p"パスワード"' < /home/testsuser/phpipam/db-back.sql