通常、人々はDockerにコンテナー内のデータを永続化させることについてすべてであり、正確にそれを行う方法について約2000万の質問がありますが、私はテスターであり、データに行ったばかりのすべてのがらくたをダンプして元に戻したいです私の既知の状態(別名私のイメージ)に。
私のイメージに基づいて新しいコンテナーを起動することでこれを実行できることは承知していますが、これにより、コンテナーへのネットワーク接続を切断して再接続する必要が生じ、それは非常に困難です。
実行中のコンテナーを再起動せずに元のイメージに戻すことはできますか?
元の状態に戻すには、コンテナを再起動する必要があります。これは重要です。コンテナイメージは単なるファイルの集まりであり、実際に実行中のコンテナは何らかのプロセスを開始する必要があるため、実行中にコンテナを元に戻すことはできません。そのプロセスにはおそらく問題があるからです。
したがって、あなたの質問に答えるために-コンテナーを再起動すると、Dockerイメージは起動に数ミリ秒しかかかりません-残りの時間はプロセスの起動です。
残念ながら、実行中はイメージを元に戻したり変更したりすることはできません。実行中のコンテナを停止して削除する必要があります。ボリュームがどのコンテナーにもアタッチされなくなったら、docker volume Prune
コマンドを実行すると、現在コンテナーにアタッチされていないすべてのボリュームが破棄されます。
次に、イメージからDockerコンテナーを再起動するだけで、新たに再起動できます。
また、Dockerを学習していたときに、この記事が優れた参考になることもわかりました: https://medium.com/the-code-review/top-10-docker-commands-you-cant-live-without- 54fb6377f481
コンテナーにボリュームをマウントしないでください。ボリューム(データまたはfsマウントが永続的かどうか)。データを永続化しない場合は、Dockerでコンテナーを再起動できます。