バックアップとデータ修復

以下の手順を用いて、イメージとコンテナのデータを保存・修復できます。VM ディスクをリセットしたい場合や、 Docker 環境を新しいコンピュータに移動したい場合などに役立ちます。

注釈

私のコンテナをバックアップすべきですか?

コンテナのデータをボリュームやバインド マウントに保存している場合、コンテナのバックアップは不要かもしれません。ですが、コンテナ作成時に使用したオプションを確実に覚えておくか、再インストール後に同じ設定でコンテナを再作成したい場合は、 Docker Compose ファイル の利用を検討ください。

データの保存

  1. docker container commit でコンテナをイメージにコミットします。

    コンテナへのコミットは、コンテナ内ファイルシステムの変更とコンテナ内の設定、たとえばラベルと環境変数、ローカルのイメージとしてを保存します。環境変数にはパスワードやプロキシ認証のような機微情報を含む場合があるため、注意してください。イメージをレジストリに送信する場合には、注意を払う必要があります。

    また、コンテナにアタッチしているボリューム内では、ファイルシステムへの変更はイメージに含まれません。そのため、個別にバックアップが必要です。

    データベースのようなコンテナデータを保管するために 名前付きボリューム を使っている場合、ストレージのセクションにある データ・ボリュームのバックアップ・修復・移行 をご覧ください。

  1. docker push を使うと、ローカルで構築したイメージを送信できるようになり、 Docker Hub レジストリ に保管できるようになります。

イメージに対して リポジトリの可視性を「private」 に設定すると、パブリックにアクセスできなくなります。

あるいは、 docker image save -o images.tar image1 [image2 ...] を使えば、あらゆるイメージをローカルの tar ファイルとして維持できるよう保存します。

データのバックアップ後は、現在のバージョンの Docker Desktop をアンインストールし、 異なるバージョンのインストール や Docker Desktop を初期状態のデフォルトにリセットできます。

データの復旧

  1. Docker Hub に送信したイメージを復旧するには、 docker pull を使います。

    ローカルの tar ファイルとしてイメージをバックアップしている場合は、保存済みのイメージを復旧するために docker image load -i images.tar を使います。

  1. コンテナを再作成する必要があれば、 docker run を使うか、 Docker Compose を使います。

ボリュームデータの復旧は、ストレージセクションにある データ・ボリュームのバックアップ・修復・移行 をご覧ください。

参考

Back up and restore datam

https://docs.docker.com/desktop/backup-and-restore/