【Docker】コマンド一覧 - ChuN6868/CodeChrysalis-fullstuck-project GitHub Wiki
- Dockerfileからイメージをビルド
- 作成したイメージからコンテナを起動
下記のようなコマンドでビルドされる
docker build -t my-backend:latest ./backend
// docker build -t イメージ名[:タグ] パス
docker images
// 作成されたイメージ一覧はこのコマンドで確認
下記のようなコマンドで起動される
docker run -d --name backend-container my-backend:latest
// docker run -d --name コンテナ名 イメージ名[:タグ]
下記のdocker-compose.ymlを例とする
# version は削除推奨(Compose V2では不要)
version: '3.8'
services:
backend:
build: ./backend
ports:
- "8080:8080"
networks:
- app-network
environment:
- SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL}
- SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}
- SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
depends_on:
- db
frontend:
build: ./frontend
ports:
- "4200:4200"
networks:
- app-network
volumes:
- ./frontend:/app
- /app/node_modules
db:
image: postgres:15
restart: always
environment:
# Dockerコンテナ上で生成するDB名をここで設定
POSTGRES_DB: ${POSTGRES_DB}
# DBのユーザー名およびパスワードの初期値をここで設定
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- app-network
volumes:
pgdata:
networks:
app-network:
- .env ファイルや環境変数から${SPRING_DATASOURCE_URL} や ${POSTGRES_USER} などの変数が解決されます。
- → Composeファイル内の環境変数が値に置き換わります。
-
backend サービス
- build: ./backend から ./backend ディレクトリの Dockerfile を使いdocker build 相当の処理でイメージを作成(キャッシュがあればそれを使う)
-
frontend サービス
- 同様に ./frontend の Dockerfile からイメージをビルド
-
db サービス
- image: postgres:15 となっているため、Docker Hub などから 公式のPostgresイメージをpullする(ビルドはしない)
- backend、frontend、db の順でコンテナを作成し起動します。
- ※ただし、backend は depends_on: - db があるため、まず db コンテナが起動し、db が起動後に backend が起動されます。
- (厳密には depends_on は起動順のみ保証で「DBの準備完了」は保証しません)
- frontend は依存関係がないため独立して起動
app-network という独自の仮想ネットワークが作成され(存在しなければ) → 各コンテナがこのネットワーク上で通信可能に
pgdata というボリュームが作成され(存在しなければ) → db コンテナのPostgreSQLのデータを永続化
各コンテナは environment に記載された値を環境変数として受け取り起動
- 例)
- backend はSpring Bootアプリが${SPRING_DATASOURCE_URL} 等のDB接続情報を環境変数で受け取り、接続を行う
- db はPostgresの初期DB名、ユーザー、パスワードを設定されて起動
操作内容 | コマンド | 補足説明 |
---|---|---|
コンテナ一覧表示 | docker ps |
実行中のみ |
停止中含む全て表示 | docker ps -a |
全てのコンテナ |
コンテナ停止 | docker stop <コンテナ名> |
強制終了は kill
|
コンテナ削除 | docker rm <コンテナ名> |
停止済みのもののみ |
コンテナ内へ入る | docker exec -it <コンテナ名> bash |
シェル操作可能 |
コンテナのログ確認 | docker logs <コンテナ名> |
アプリログの確認 |
コンテナ再起動 | docker restart <コンテナ名> |
操作内容 | コマンド | 補足説明 |
---|---|---|
イメージ一覧表示 | docker images |
ローカルにあるイメージ一覧 |
イメージ削除 | docker rmi <イメージ名 or ID> |
使用中は削除不可 |
イメージビルド | docker build -t myapp . |
タグ名付きでビルド |
イメージ取得(pull) | docker pull postgres:15 |
Docker Hub から取得 |
操作内容 | コマンド | 補足説明 |
---|---|---|
ビルド+起動(前面) | docker compose up --build |
初回や更新後 |
バックグラウンド起動 | docker compose up -d |
非対話型起動 |
ビルド+非対話型起動 | docker compose up --build -d |
最もよく使う |
停止+削除 | docker compose down |
コンテナとネットワーク削除 |
ボリュームも削除 | docker compose down -v |
DB初期化などに |
ログの確認 | docker compose logs -f |
リアルタイム |
特定サービスのログ | docker compose logs db |
PostgreSQLログなど |
特定サービス再起動 | docker compose restart backend |
操作内容 | コマンド | 補足説明 |
---|---|---|
ボリューム一覧 | docker volume ls |
|
ボリューム削除 | docker volume rm <ボリューム名> |
使用中は削除不可 |
ボリューム検索 | docker volume inspect |
内容や場所を確認 |
ネットワーク一覧 | docker network ls |
|
ネットワーク削除 | docker network rm <ネットワーク名> |
コマンド | 説明 |
---|---|
docker inspect <対象> |
コンテナ/イメージの詳細をJSON形式で表示 |
docker stats |
リアルタイムのリソース使用状況 |
docker system df |
ディスク使用状況 |
docker system prune |
未使用のすべてのリソースを一括削除(注意) |
docker compose up --build -d # 再ビルドしてバックグラウンド起動
docker compose logs -f # 全サービスのログをリアルタイム表示
docker compose exec db psql -U postgres # PostgreSQLに接続
docker exec -it $(docker ps -qf "name=db") psql -U postgres
バージョン | コマンド形式 | 推奨度 |
---|---|---|
Docker Compose V1 | docker-compose | ❌ 非推奨 |
Docker Compose V2 | docker compose | ✅ 推奨 |
Docker 開発で「どこを修正したか」によって、何をやり直すべきか(ビルド or 再起動 or 両方)は異なります。 🎯 目的:修正を 確実に反映させる ためにやるべきことを整理 以下の4パターンに分けて説明します👇
💡 よくある修正: backend/src/main/java/... のコード変更
Javaのビジネスロジックを直した
ビルド済み .jar を更新したい
✅ 必要な操作: 再ビルド(MavenやGradleなど)
Dockerイメージの再ビルド
コンテナ再起動
実行例(Mavenの場合):
cd backend
mvn clean package
cd ..
docker compose up --build
またはコンテナだけ再起動したい場合:
docker compose up --build backend
💡 よくある修正: openjdk:17 → openjdk:21 に変更
JARファイルのコピー先やCMD変更
✅ 必要な操作: Dockerイメージを再ビルド(必須)
コンテナを再作成・再起動
実行:
docker compose up --build backend
--build を忘れると古いイメージが再利用されるため注意!
💡 よくある修正: ポート変更、ボリューム、環境変数、ネットワーク定義の変更など
✅ 必要な操作: docker compose up -d --build
新しい設定でコンテナを再作成します(サービス全体に影響が出る可能性あり)
推奨コマンド:
docker compose up -d --build
場合によっては、古い設定が残るのを防ぐために:
docker compose down
docker compose up -d --build
💡 よくある修正: DBの名前やパスワードを変更
Spring Boot の DB接続情報を変更
✅ 必要な操作: .env の中身は Dockerイメージのビルド時とコンテナ起動時に使われるため → --build をつけて up し直すのが安全
実行:
docker compose up -d --build
.env のみ修正して --build なしで up すると、反映されないことがあります。
