コンテンツにスキップ

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