docker-compose.ymlのversion属性の警告を修正する方法【QNAP ContainerStation】

docker-compose.ymlのversion属性の警告を修正する方法【QNAP ContainerStation】

2026年3月24日

はじめに

QNAPのContainerStationでDocker Composeを使っていると、以下のような警告が表示されることがあります。

WARN the attribute `version` is obsolete, it will be ignored,
please remove it to avoid potential confusion

この警告はdocker-compose.ymlの先頭に書かれているversion:という記述が原因です。

この記事では警告の原因と、SSHを使った修正手順を解説します。


この記事でわかること

  • version:属性の警告が出る原因
  • SSHでversion:を削除する方法
  • 複数のdocker-compose.ymlをまとめて確認する方法
  • 修正してはいけないファイルの見分け方

環境

  • QNAP NAS(ContainerStation インストール済み)
  • SSH接続ソフト:TeraTerm

なぜ警告が出るのか

以前のDocker Composeではdocker-compose.ymlの先頭に以下のようにバージョンを記述するのが一般的でした。

version: '3.8'
services:
  ...

しかしDocker Compose V2以降、このversion:フィールドは廃止(obsolete) となりました。現在は書いても無視されるだけですが、警告として表示されます。

解決策はシンプルで、version:の行を削除するだけです。


Step 1:QNAPのSSHを有効にする

SSHの有効化手順はこちら [QNAPのCloudflaredをSSHでアップデートする方法]

コントロールパネル → ネットワークとファイルサービス → Telnet/SSH → 「SSH接続を許可する」にチェック → 適用


Step 2:TeraTermでSSH接続する

TeraTermを起動してQNAPのIPアドレスに接続します。


Step 3:警告が出ているdocker-compose.ymlを特定する

まず警告が出ているファイルを確認します。

grep -r "^version:" /share/CACHEDEV4_DATA/docker/ 2>/dev/null | grep "docker-compose.yml"

実行結果の例:

/share/CACHEDEV4_DATA/docker/your_blog/docker-compose.yml:version: '3.8'
/share/CACHEDEV4_DATA/docker/your_blog2/docker-compose.yml:version: '3.8'

2>/dev/nullについて データベースファイルなどアクセス権限のないファイルへのエラーメッセージを非表示にしています。 grep "docker-compose.yml"で対象ファイルのみに絞り込んでいます。


Step 4:修正前に必ず確認する

version:を削除してdocker compose up -d --force-recreateを実行する前に、そのファイルが実際に使われているかを確認します。

docker ps

実行中のコンテナ一覧と、修正対象のdocker-compose.ymlに書かれているコンテナ名を照合してください。

重要:使われていないファイルは触らない docker-compose.ymlが存在していても、実際のコンテナが別のファイルで管理されている場合があります。 そのようなファイルを誤ってdocker compose upすると、コンテナ構成が壊れる可能性があります。 必ずdocker psで現在動いているコンテナを確認してから作業してください。


Step 5:version:を削除する

修正対象のディレクトリに移動してversion:行を削除します。

sed -i コマンドで docker-compose.yml の version: 行を削除したSSH画面
cd /share/CACHEDEV4_DATA/docker/2tsuji
sed -i '/^version:/d' docker-compose.yml

削除できたか確認します:

cat docker-compose.yml

先頭がservices:から始まっていれば成功です。

cat docker-compose.yml の実行結果。先頭が services: から始まっていることを確認するSSH画面

Step 6:コンテナを再作成して警告が消えたか確認する

docker compose up -d --force-recreate

修正前(警告あり):

WARN the attribute `version` is obsolete, it will be ignored,
please remove it to avoid potential confusion
[+] Running 3/3
✔ Container cloudflared_your_blog  Started
✔ Container wordpress_your_blog    Started
✔ Container db_your_blog      Started

修正後(警告なし):

[+] Running 3/3
✔ Container cloudflared_your_blog  Started
✔ Container wordpress_your_blog    Started
✔ Container db_your_blog         Started
docker compose up -d --force-recreate の実行結果。修正前は WARN が表示され、修正後は表示されなくなった比較画面

WARNの行が消えていれば修正完了です。


Step 7:警告が完全に消えたか確認する

docker compose config 2>&1 | grep -i warn