Docker Compose
command
起動
docker compose up
この場合フォアグラウンドで起動する。
バックグラウンドで起動するには-d
を付ける。
docker compose up -d
プロジェクト名を指定
デフォルトではディレクトリ名が使用されるが、そのままだと異なるコンテナ環境でもディレクトリ名がたまたまでも同一だと競合してしまう。その場合はプロジェクト名を指定する。
docker compose -p project-name up -d
docker compose -p project-name ps
停止と削除
docker compose down
down
でコンテナは削除されるが、ボリュームは残る。
ボリュームも削除するには-v
オプションを追加する。
docker compose down -v
特定のコンテナのみ停止・削除するには、引数にCompose Fileで指定している名称を指定する。
ただしdown
ではこの指定はできない。
docker compose stop myapp
docker compose rm myapp
composeファイル指定
-f
で指定する。
docker compose -f compose-v1.2.3.yml up -d
コマンド起動
docker exec
と異なり-it
オプションは不要。アプリ名とコマンド名のみでOK
docker compose exec <app名> bash
ファイルコピー
docker compose cp app:/path/to/file ./file
Composeファイル
network_mode
"service:[service name]"
と記述すると、対象サービスのネットワーク設定を使用する。
記述例
services:
app:
image: myapp
ports:
- 8080:8080
networks:
default:
ipv4_address: 192.168.0.100
db:
image: mysql
network_mode: service:app
ファイルのbindマウント
services:
server:
image: "rancher/k3s:v1.30.2-k3s2"
command: server
:
volumes:
- ./registries.yaml:/etc/rancher/k3s/registries.yaml