1. ホーム
  2. docker

[解決済み] 停止したDockerコンテナを別のコマンドで起動するには?

2022-03-16 07:48:34

質問

停止しているDockerコンテナを別のコマンドで起動したいのですが、デフォルトのコマンドがクラッシュしてしまいます - つまり、コンテナを起動してから「docker exec」を使うことができません。

基本的に、私はコンテナの内容を検査できるようにシェルを起動したいと思います。

幸いなことに、私はコンテナを -it オプション付きで作成しました。

解決方法は?

停止したコンテナIDの検索

docker ps -a

停止したコンテナをコミットします。

このコマンドは、変更されたコンテナの状態を新しいイメージに保存します。 user/test_image

docker commit $CONTAINER_ID user/test_image

別のエントリーポイントで起動/実行します。

docker run -ti --entrypoint=sh user/test_image

エントリポイント引数の説明。 https://docs.docker.com/engine/reference/run/#/entrypoint-default-command-to-execute-at-runtime

注意事項

上記のステップは、停止しているコンテナを同じファイルシステムの状態で起動するだけです。これは迅速な調査にはもってこいです。しかし、環境変数、ネットワーク設定、アタッチされたボリューム、その他のスタッフは引き継がれないので、これらの引数はすべて明示的に指定する必要があります。

停止したコンテナを起動する手順はこちらよりお借りしました。(最後のコメント) https://github.com/docker/docker/issues/18078