【Docker】Docker compose での警告対応

◾️はじめに

少し作業に余裕が出てきて、docker での警告を見てみたら
勉強になったのでメモ。

学べたこと

* Orphan containers(孤立したコンテナ)および「--remove-orphans」オプション
* Dockerのプロジェクト名
* 「to avoid potential confusion」って英語表現

目次

【1】WARN「Found orphan containers」が表示
【2】WARN「version is obsolete」が表示

【1】WARN「Found orphan containers」が表示

1)メッセージ内容

WARN[0000]: Found orphan containers (xxx, xxx, xxx, xxx) for this project.
If you removed or renamed this service in your compose file,
 you can run this command with the --remove-orphans flag to clean it up.

補足:Orphan containers(孤立したコンテナ)

現在のcomposeファイルには記載されていないが、
以前にcomposeで作成されたコンテナを指す

cf. orphan(オルフェン) = 孤児

2)原因

composeファイルに記載されていない古いコンテナが残っているため

3)解決案1:docker compose up/downで「--remove-orphans」を付与

* --remove-orphans
 => Compose ファイルで定義されていないサービス用のコンテナを削除

案1:docker compose up

# docker-compose up --remove-orphans
docker compose up --remove-orphans

https://docs.docker.jp/compose/reference/up.html
案1:docker compose down

# docker-compose down --remove-orphans
docker compose down --remove-orphans

https://docs.docker.jp/compose/reference/down.html

4)解決案2:別名のプロジェクト名をつける

* 以下のサイトに載っている方法

https://qiita.com/machbike/items/6ea53c721516e9e578e4

別名のプロジェクト名をつける方法

[1] -pオプションを使用
 => docker composeコマンドを実行する際に-pまたは--project-nameを使用する

[2] 環境変数「COMPOSE_PROJECT_NAME」で設定する
 2-1) 環境変数「COMPOSE_PROJECT_NAME=<YOUR_NAME>」を指定
 2-2) .envファイルを配置して「COMPOSE_PROJECT_NAME=<YOUR_NAME>」を指定

などなど

https://qiita.com/P-man_Brown/items/cda1837453b149fe5da7

【2】WARN「version is obsolete」が表示

1)メッセージ内容

WARN[0000] /xxxx/compose.yml: `version` is obsolete,
 it will be ignored, please remove it to avoid potential confusion.

2)原因

compose.ymlにversion:が記載されていたため。
現状不要。

3)解決案

compose.yml内のversion:の記述を削除

関連記事

Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker によるトラブルシューティング
https://dk521123.hatenablog.com/entry/2017/09/24/162257