バックアップとデータ修復¶
以下の手順を用いて、イメージとコンテナのデータを保存・修復できます。VM ディスクをリセットしたい場合や、 Docker 環境を新しいコンピュータに移動したい場合などに役立ちます。
注釈
私のコンテナをバックアップすべきですか?
コンテナのデータをボリュームやバインド マウントに保存している場合、コンテナのバックアップは不要かもしれません。ですが、コンテナ作成時に使用したオプションを確実に覚えておくか、再インストール後に同じ設定でコンテナを再作成したい場合は、 Docker Compose ファイル の利用を検討ください。
データの保存¶
docker container commit
でコンテナをイメージにコミットします。コンテナへのコミットは、コンテナ内ファイルシステムの変更とコンテナ内の設定、たとえばラベルと環境変数、ローカルのイメージとしてを保存します。環境変数にはパスワードやプロキシ認証のような機微情報を含む場合があるため、注意してください。イメージをレジストリに送信する場合には、注意を払う必要があります。
また、コンテナにアタッチしているボリューム内では、ファイルシステムへの変更はイメージに含まれません。そのため、個別にバックアップが必要です。
データベースのようなコンテナデータを保管するために 名前付きボリューム を使っている場合、ストレージのセクションにある データ・ボリュームのバックアップ・修復・移行 をご覧ください。
docker push
を使うと、ローカルで構築したイメージを送信できるようになり、 Docker Hub レジストリ に保管できるようになります。
イメージに対して リポジトリの可視性を「private」 に設定すると、パブリックにアクセスできなくなります。
あるいは、
docker image save -o images.tar image1 [image2 ...]
を使えば、あらゆるイメージをローカルの tar ファイルとして維持できるよう保存します。
データのバックアップ後は、現在のバージョンの Docker Desktop をアンインストールし、 異なるバージョンのインストール や Docker Desktop を初期状態のデフォルトにリセットできます。
データの復旧¶
Docker Hub に送信したイメージを復旧するには、
docker pull
を使います。ローカルの tar ファイルとしてイメージをバックアップしている場合は、保存済みのイメージを復旧するために docker image load -i images.tar を使います。
コンテナを再作成する必要があれば、
docker run
を使うか、 Docker Compose を使います。
ボリュームデータの復旧は、ストレージセクションにある データ・ボリュームのバックアップ・修復・移行 をご覧ください。
参考
- Back up and restore datam