1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Composeでup -dした後にupしても大丈夫?動作の違いを解説

1
Posted at

はじめに

ChatGPT Image 2026年7月10日 23_56_26.png

Docker Composeを使い始めた頃、こんな疑問を持ったことはありませんか?

docker compose up -d

でコンテナを起動した後に、

docker compose up

を実行したらどうなるのだろう?

  • エラーになる?
  • 二重起動する?
  • 一度停止した方がいい?

私もDocker学習中に気になったので調べてみました。

この記事では、docker compose up -ddocker compose up の違いと、連続で実行した場合の挙動について解説します。

結論

先に結論です。

docker compose up -d

を実行した後に、

docker compose up

を実行しても問題ありませんでした。

コンテナが二重起動することもなく、基本的にエラーにもなりません。

ただし、

表示される内容やターミナルの使われ方が変わります。

up -dup の違い

まずは2つのコマンドの違いの理解から。

docker compose up -d

-ddetached(デタッチドモード) の略です。

コンテナをバックグラウンドで起動します。

特徴は次の通りです。

  • コンテナは裏で動く
  • ターミナルはすぐ操作可能になる
  • ログは表示されない
  • 開発時によく使われる

実行イメージ

コンテナ起動
↓
すぐにプロンプトが返る
↓
別の作業ができる

docker compose up

こちらはフォアグラウンドで起動します。

特徴は次の通りです。

  • コンテナのログがリアルタイムで表示される
  • ターミナルが占有される
  • 停止するには Ctrl + C が必要

実行イメージ

コンテナ起動
↓
ログが流れ続ける
↓
Ctrl + Cで終了

up -dの後にupするとどうなる?

例えば次のように実行します。

docker compose up -d
docker compose up

初心者の頃は、「同じコンテナがもう1つ起動するのでは?
と思っていたことがありました。

しかし実際にはそうなりません。

既にコンテナが起動しているため、Docker Composeは既存のコンテナを利用します。

つまり、

新しく起動する
↓
ではなく
↓
既存のコンテナに接続する

という動作になります。

表示される「Attaching to」の意味

docker compose up を実行すると、次のような表示を見ることがあります。

Attaching to web-1

これはエラーではありません。

意味としては、以下のようなことになります

既に起動しているコンテナに接続しました

Docker Composeがコンテナのログを表示するためにアタッチしている状態になります。

停止してから実行する必要はある?

以下のようなケースでは、そのまま実行して問題ありませんでした。

  • ログを確認したい
  • コンテナの状態を確認したい
  • デバッグしたい

⚠️設定を変更した場合は話が変わります。

停止した方がよいケース

① Dockerfileを変更したとき

例えば次のような変更です。

FROM ruby:3.2

FROM ruby:3.3

イメージの内容が変わるため、再ビルドが必要です。

② compose.ymlを変更したとき

例えば、

  • ポート番号
  • 環境変数
  • ボリューム設定

などを変更した場合です。

この場合も再起動が必要になります。

③ 再ビルドしたいとき

よく使うのは次のコマンドです。

docker compose down
docker compose up --build

流れとしては、

  1. コンテナを停止
  2. イメージを再ビルド
  3. 新しい設定で起動

となります。

使い分け

使い分けをまとめると以下のような感じになります

やりたいこと コマンド
コンテナ起動 docker compose up -d
ログ確認 docker compose logs -f
デバッグ docker compose up
コンテナ停止 docker compose down
再ビルド docker compose up --build

おすすめの運用方法

Docker学習中であれば、まずは次の運用がおすすめです。

起動

docker compose up -d

ログ確認

docker compose logs -f

停止

docker compose down

この3つを覚えるだけでも十分に開発できます。

特にログ確認は、

docker compose logs -f

を使う方が便利なことが多いため、普段は up -d を使うケースが多いです。

まとめ

今回のポイントを整理します。

  • docker compose up -d はバックグラウンド起動
  • docker compose up はログを表示しながら起動
  • up -d の後に up を実行しても問題ない
  • コンテナが二重起動するわけではない
  • 「Attaching to」は既存コンテナへの接続を意味する
  • Dockerfileやcompose.ymlを変更した場合は再ビルドを検討する

最初は「同じコマンドなのに何が違うの?」と混乱しがちですが、実際には ログを表示するかどうかの違い と考えると理解しやすいでしょう。

Docker Composeを使い始めたばかりの方の参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?