docker の run、exec、start の関係を理解する

仕事で使う技術的なこと

docker を久々に触ったのですが、run, exec, start コマンドがそれぞれなんだったっけ?ってなったので備忘録としてまとめておきます。

ざっくりイメージ

以下の絵に示す通りです。

リモートリポジトリ(DockerHub など)ローカルリポジトリイメージdocker pullコンテナ実行中停止中docker stopdocker start(イメージデータのダウンロード)(コンテナを実行中→停止へ)(コンテナを停止→実行中へ)docker commit(コンテナをイメージデータとして保存)docker rmi(イメージデータを削除)docker rm(コンテナを削除)docker exec(既に実行中コンテナへアクセス)※別プロンプトからなどdocker run(イメージデータをコンテナ化+実行)

補足

  • docker ps では、停止中のコンテナは表示されない
    • docker ps -a したら停止中のコンテナが表示される
  • docker rm <コンテナ名> をしても、コンテナは削除されるが、イメージは削除されない
    • イメージ削除は、後述する docker rmi <イメージ名> を実行する
  • コンテナ化されているイメージは削除できない(docker rmi <イメージ名>に失敗する)
    • イメージ化されているコンテナを全て docker rm <コンテナ名> で削除してからでないと、イメージは削除できない

コメント

タイトルとURLをコピーしました