【Docker基礎】docker runコマンドとコンテナのライフサイクル

 Docker でコンテナを作成・起動する最も基本的なコマンドが 「docker run」 です。このコマンドは、必要があればイメージをダウンロードし、コンテナを作り、起動まで一気に行ってくれる便利なコマンド。
 ここでは、コンテナのライフサイクル(作成/起動/停止/削除)と、docker run を中心に、どのようにコンテナを扱うのかを紹介します。コンテナを「作る → 動かす → 止める → 捨てる」が Docker 運用の基本サイクルなので、しっかり理解しておきましょう。

docker run とは?

docker run は、3 つの役割 を 1 つにまとめたコマンドです。

  1. Docker Hub からイメージを取得(必要があれば)
    ・イメージがローカルにない場合に docker pull 相当の処理を行う。
  2. イメージを使ってコンテナを作成
    docker create の代わりにコンテナを生成
  3. コンテナを起動
    docker start を実行したのと同じ状態になる。

つまり、 docker run は以下のコマンドをまとめて実行するイメージです。

  1. docker pull
  2. docker create
  3. docker start

コンテナのライフサイクル

 コンテナは、一度作成して永遠に使うわけではなく、「作っては捨てる」 という考え方が基本。具体的には以下のステップを繰り返します。

  1. イメージのダウンロード(pull)
  2. コンテナの作成(create)
  3. コンテナの起動(start)
  4. コンテナの停止(stop)
  5. コンテナの削除(rm)
  6. (必要に応じて再び 2 へ戻る)

なぜ「作っては捨てる」のか?

  • 新しいバージョンのソフトウェアや設定が必要になれば、コンテナを作り直すほうが安全かつ簡単
  • ミスによるトラブルが起きても、コンテナを捨てて再作成すれば元通りの状態に戻せる。

コンテナを停止・削除するコマンド

  1. コンテナを停止: docker stop / docker container stop
    ・稼働中のコンテナを安全に終了
    ・例: docker stop my-container
    ・注: コンテナは動いている状態でいきなり rm できない。
  2. コンテナを削除: docker rm / docker container rm
    ・停止したコンテナを破棄
    ・例: docker rm my-container
    -f オプションを付けると強制削除だが、サービスに影響が出る可能性があるので注意

まとめ

docker run

  • イメージのダウンロード、コンテナ作成、コンテナ起動を一度に行う
  • 実質 docker pull + docker create + docker start の流れ

コンテナのライフサイクル

  1. Pull(イメージダウンロード)
  2. Create(コンテナ作成)
  3. Start(起動)
  4. Stop(停止)
  5. RM(破棄)

Docker は「作っては捨てる」スタイルが基本

停止 / 破棄
docker stop → 稼働中のコンテナを停止
docker rm → 停止中コンテナを削除

 今後、コンテナを扱う上で最も頻繁に使う流れが 「作成・起動 → 停止 → 破棄」 です。コンテナを作成して、起動するには「docker run(docker container run)」、コンテナを停止させるには「docker stop(docker container stop)」、コンテナを削除するには「docker rm(docker container rm)」を使用します。それぞれのコマンドについて、この次のコンテンツで解説します。