0
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コマンド

Last updated at Posted at 2025-10-07

そもそもDockerとは何か

🔹 一言で言うと:
アプリを動かすための「環境」を丸ごとパッケージ化する技術。

🔧 背景

普通、アプリを動かすにはいろんなものが必要です:
OS(例:Windows, Linux)
ランタイム(例:Java, Python)
データベース(例:MySQL, PostgreSQL)
ライブラリや設定ファイル
これを手動でインストールすると、
「俺の環境では動くけど、他の人のPCでは動かない💀」
という問題がよく起こります。

🐳 Dockerの仕組み

Dockerは「コンテナ(container)」という軽量な仮想環境を使って、
アプリとその動作環境をまとめて管理します。

イメージ的には👇
通常の開発環境:

| OS |
| ├─ Java
| ├─ MySQL
| ├─ Node.js

Docker使用時:

| Docker Engine(共通)
| ├─ コンテナ① Java環境
| ├─ コンテナ② MySQL環境
| ├─ コンテナ③ Nginx環境

つまり、Dockerさえ入っていれば、どんなPCでも同じ環境を一瞬で再現できる。

docker-composeとは

Dockerには「コンテナ1つ1つを手動で起動」する方法と、
「まとめて管理する方法」の2種類があります。
docker run → 単体でコンテナ起動
docker compose → 複数のコンテナをまとめて起動・停止

docker-compose.yml(設定ファイル)

docker compose は「docker-compose.yml」という設定ファイルを読み取ります。

version: '3'
services:
  app:
    build: .
    ports:
      - "8080:8080"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root

このファイルには、
どんなイメージを使うか(例:MySQL、Javaアプリ)
どんなポートで通信するか
どの環境変数を使うか
といった環境定義が書かれています。

docker compose up -d の意味

コマンド 意味
docker compose docker-compose.ymlを使う
up コンテナを起動する(必要なら自動で作成)
-d バックグラウンドで実行する(ターミナルを占領しない)

🔹 具体的には

docker-compose.yml を読み込む
各サービス(例:app、dbなど)に対応するコンテナを作成
コンテナを起動
-d があるので、ターミナルはそのまま使える

docker compose up -d

を実行すると、
「アプリ用のコンテナ」と「DB用のコンテナ」が同時に立ち上がるイメージ👇

Starting app_1 ... done
Starting db_1  ... done

バックグラウンド実行とは

通常の実行

docker compose up

ターミナル(黒い画面)を占有
コンテナの ログがずっと表示され続ける
ターミナルで別の作業ができない

バックグラウンド実行

docker compose up -d

コンテナは起動するが、ターミナルはすぐに返ってくる
他のコマンドを同じターミナルで使える
コンテナは裏で動き続けている

0
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
0
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?