docker-compose run, up, build, create, start の違いと使い方まとめ

Docker_Compose_CLI

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、docker-compose run, up, build, create, start の違いと使い方についてまとめて解説していきます。

docker-compose run, up, build, create, start の違いと使い方

Docker Compose の run コマンドと、upコマンドの違いがわからなかったので、調べてまとめてみました。

また、他の docker-compose コマンドについてもまとめています。

docker-compose up とは?

docker-compose up コマンドはdocker-compose.ymlで定義したすべてのServiceのDocker Container の作成 & 起動 ( or 再起動 )をします。

ちなみに、Imageが存在しなければ、Docker Imageから作成してくれますが、

Imageをすでにある場合は、Imageを作り直さない(ImageがUpdate)されない点に注意です。

docker-compose up コマンドの特徴をまとめると、次のとおりです。

  1. depends_onlinksで紐づいているコンテナもまとめて起動する。
    • サービスを一括でまとめて起動したい場合に使用する。
  2. デフォルトは「アタッチド」(attached) モードであり、全てのコンテナのログが画面上に表示される。
  3. 「デタッチド」(detached) モード( -d )では、Compose はコンテナを実行すると終了するが、コンテナはバックグラウンドで動き続ける。

docker-compose up コマンドは、Docker Composeに紐づくServiceを一括でまとめて起動したい場合に使用します。

docker-compose run とは?

docker-compose runコマンドはdocker-compose.ymlで定義した、1つのServiceを指定して、Docker Container の作成 & 起動をします。

こちらも、Imageをすでにある場合は、Imageを作り直さない(ImageがUpdate)されない点に注意です。

docker-compose runコマンドの特徴をまとめると、次のとおりです。

  1. 実行するには、Service名の指定が必要であり、特定の Service のコンテナを起動し、かつ依存関係のあるコンテナも起動する。
  2. テストの実行であったり、データ・ボリューム・コンテナに対するデータの追加・削除といったTaskのために実行することが多い。
  3. run コマンドは実際には docker run -ti
    • コンテナに対してインタラクティブなターミナルを開き、コンテナのプロセスが終了すると、その時点の該当する終了コードを返す。

docker-compose run コマンドは、Docker Compose の 1つのServiceを指定して、Container を起動して、何か特定のTaskを実行したい時に使用します。

docker-compose run, up, build, create, start の役割

【初心者向け】docker-compose run, up, build, createの違い の docker-compose のコマンドの役割をまとめた対応表がわかりやすいので、引用します。

docker-compose run, up, build, create, start の役割は次の表のようになっています。

コマンド処理内容備考
runイメージ&コンテナ作成&起動docker-composeで設定している1つのServiceのみ。
(1つのServiceに対して1つのコマンドのみ)
upイメージ&コンテナ作成&起動depends_onやlinksで紐づいているコンテナもまとめて起動。
サービスを一括でまとめて起動したい場合に使用する。
buildイメージの作成
createコンテナの作成
startコンテナの起動

処理の流れ(Docker Compose の 処理フロー)をコマンドで見る

【初心者向け】docker-compose run, up, build, createの違い の docker-compose の処理の流れをまとめた対応表がわかりやすいので、引用します。

処理の流れをコマンドでまとめると次の表のようになります。

イメージ作成コンテナ作成コンテナ起動内容
buildcreatestart1つ1つ個別に実行
run1つのサービスだけ起動
upDocker Composeに定義・紐づくServiceをまとめて起動

docker-compose upまたはdocker-compose runを実行する際に、

イメージが既にある場合は、既存のイメージをそのまま使用することには、注意が必要です。

パッケージを追加したなどで、再度イメージを作り直したい場合は、別途 docker-compose buildを実行して、

その後でdocker-compose upまたはdocker-compose runを実行する必要があります。

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

Dockerの学習・参考書

参考・引用

  1. 【初心者向け】docker-compose run, up, build, createの違い。
  2. docker-compose “up” ” run” “start” コマンド 違い

最近の投稿