4.1 バックアップとデータ復元の基本的な方法
もし一度でも大切なデータを失ったことがあるなら、バックアップがどれほど重要なのかは説明する必要もないよね。このレクチャーでは、Dockerでバックアップを作成しデータを復元するための様々な方法やツールについて説明するよ。例えば、ボリュームやバインドマウントのディレクトリなど。
バックアップとデータ復元の基本的な方法
- Dockerのボリュームバックアップ
- tarユーティリティを使ったバックアップ
- コンテナ内のデータベースバックアップ
- バックアップからのデータ復元
4.2 Dockerボリュームのバックアップ
Dockerのボリュームは、コンテナ外部にデータを保存するための便利な方法を提供してるよ。ボリュームをバックアップするには、いろんなアプローチを使えるよ。
docker runコマンドを使ったボリュームのバックアップ例
ボリュームのバックアップ作成
ボリュームをマウントするコンテナを作成して、tarユーティリティを使ってデータのアーカイブを作る:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
この例では、my_volume
ボリュームの内容がmy_volume_backup.tar.gz
ファイルにアーカイブされて、ホストの/path/to/backup
ディレクトリに保存されるよ。
バックアップからのボリューム復元の例
ボリュームへのデータ復元
バックアップのディレクトリとボリュームをマウントするコンテナを作成して、tar
ユーティリティを使ってデータを抽出する:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
この例では、my_volume_backup.tar.gz
アーカイブのデータがmy_volume
ボリュームに復元されるよ。
4.3 tar
ユーティリティの使用によるバックアップ
tar
ユーティリティは、バックアップとデータ復元のための強力なツールだよ。コンテナ内でもホストシステム上でも使えるんだ。
コンテナ内でデータのバックアップを作成する例
必要なデータを持つコンテナを起動して、tar
を使ってアーカイブを作成しよう:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
この例では、コンテナmy_container
内のディレクトリ/data
のデータがmy_container_backup.tar.gz
というファイルにアーカイブされるよ。
アーカイブからデータを復元する例
コンテナを起動して、アーカイブからデータを抽出するためにtar
を使おう:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 コンテナ内のデータベースバックアップ
データベースにはバックアップと復元のための専用ツールがよく使われるよ。
PostgreSQLデータベースのバックアップ例
pg_dump
ユーティリティを使って、データベースのバックアップを作成してみよう:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
この例では、データベース mydb
が mydb_backup.sql
ファイルにエクスポートされるよ。
PostgreSQLデータベースの復元例
psql
ユーティリティを使って、バックアップからデータベースを復元してみよう:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 バックアップからデータを復元する
データ復元というのは、以前作成したバックアップからデータを取り出すプロセスだよ。
ボリュームのバックアップからデータを復元する例
docker run
コマンドを使ってボリュームにデータを取り出そう:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
MySQLデータベースの復元例
mysqldump
ユーティリティを使ってデータベースのバックアップを作成しよう:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
mysqlユーティリティを使ってデータベースを復元しよう:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
GO TO FULL VERSION