docker compose up で起動される 2 サービスの全体像
$ cd src/6$ docker compose up -d$ docker compose ps
docker compose up(フォアグラウンド起動)docker compose up -d(バックグラウンド起動)docker compose logs で確認docker compose up --build(ビルドし直して起動)services:web:db:
build: ./webimage: postgres:18
ports:- "3000:3000"
environment:DATABASE_URL: postgres://user:secret@db:5432/myapp
$ docker compose exec web sh/app # env/app # getent hosts db/app # exit
services:db:volumes: # ← サービス内:どこに何をマウントするか- db-data:/var/lib/postgresqlvolumes: # ← トップレベル:ボリュームを作る宣言db-data:
db-data を作るという宣言。ファイル末尾の字下げなしの位置に書くdb-data:/var/lib/postgresql のように使うvolumes:- db-data:/var/lib/postgresql- ./init.sql:/docker-entrypoint-initdb.d/init.sql
$ docker compose exec db bash# ls /var/lib/postgresql# ls /docker-entrypoint-initdb.d/# cat /docker-entrypoint-initdb.d/init.sql# exit
depends_on:db:condition: service_healthy
$ docker compose logs -f web$ docker compose exec <service> <command><service>対象のサービス名(web、db など)<command>sh や bash で対話シェル、直接コマンドなら 1 回実行$ docker compose exec db psql -U user -d myappmyapp=# SELECT datname FROM pg_database;myapp=# \quit
$ docker compose config$ docker compose build$ docker compose build --no-cache
docker compose configdocker compose builddocker compose build --no-cache$ docker compose stop$ docker compose down$ docker compose down -v
docker compose stopdocker compose start で再開できるdocker compose downdocker compose down -v3 つのコマンドが何を消して何を残すか
$ docker compose down