バックアップとリストア
以下の手順に従うと、イメージやコンテナーのデータバックアップを保存しリストアすることができます。 たとえば VM ディスクを初期化する場合や Docker 環境を別のコンピューターに移行する場合などに利用します。
データの保存
-
コンテナー内にバックアップを必要とするデータが含まれる場合は、
docker container commit
を実行して、そのコンテナーをイメージにコミットします。コンテナーをコミットすると、コンテナー内のファイルシステムの変更内容やコンテナーの設定内容(ラベル、環境変数、コマンドやエンドポイントなど)がローカルイメージに保存されます。 なお環境変数の中には、パスワードやプロキシー認証などの重要な情報が含まれているかもしれません。 したがってこのイメージをレジストリにプッシュする場合には十分に注意してください。
なおコンテナーにボリュームを割り当てていて、そのボリューム内のファイルシステムが変更されても、その変更はイメージには含まれませんから注意してください。 その場合は個別にバックアップをとる必要があります(以下の手順 3 を参照のこと)。
docker container commit
コマンドについては、Docker Engine コマンドラインリファレンス内の当コマンドの節を参照してください。自分のコンテナーはバックアップが必要?
コンテナーデータの保存にボリュームやバインドマウントを利用している場合は、コンテナーのバックアップが不要になるかもしれません。 ただし再インストールを行った後に同一の設定内容を使って再度コンテナー生成を行う場合は、最初に生成したときのオプション設定を覚えておいてください。 あるいは同等の Docker Compose ファイル を利用してください。
-
ローカルにおいてビルドしているイメージを Docker Hub レジストリ に保存しておきたい場合は
docker push
を使ってイメージプッシュを行います。 イメージを公開したくない場合は リポジトリの visibility を「プライベート」 に設定してください。docker push
コマンドについては、Docker Engine コマンドラインリファレンス内の当コマンドの節を参照してください。上の方法ではなく
docker image save -o images.tar image1 [image2 ...]
を利用すれば、イメージをローカルの tar ファイルに保存することができます。docker image save
コマンドについては、Docker Engine コマンドラインリファレンス内の当コマンドの節を参照してください。 -
名前つきボリューム を利用してデータベースなどのコンテナーデータを保存している場合は、ストレージに関しての説明ページ、データボリュームのバックアップ、復元、移行 を参照してください。
データのバックアップをとった後は、現状の Docker Desktop バージョンをアンインストールすることができます。 そして(Windows や macOS)の別バージョンをインストールしたり、Docker Desktop の設定を初期化したりすることができます。
データのリストア
-
docker pull
を実行します。 これにより、データの保存 の「手順 2」において Docker Hub にプッシュしたイメージを復元します。イメージのバックアップをローカルの tar ファイルにとっている場合は、
docker image load -i images.tar
を実行することで、保存していたイメージをリストアします。docker image load
page コマンドについては、Docker Engine コマンドラインリファレンス内の当コマンドの節を参照してください。 - ボリュームデータをリストアする方法については、ストレージに関しての説明ページ、データボリュームのバックアップ、復元、移行 を参照してください。
- コンテナーの再生成が必要である場合は
docker run
を実行するか Docker Compose を実行してください。