ここに自用のDockerプロジェクト一覧を整理しました。一部の設定はデプロイまとめを参考にしています。プロジェクトごとにメンテナンス状況やバージョンの差異が大きく、すべての例が2026年にもそのまま動作する保証はありません。
一覧は2種類の設定を区別しています。「ドキュメント確認済み」と記した項目は現在のプロジェクト説明を参考にしています。その他の項目は過去の設定であり、再検証待ちと明記しています。イメージ、認証情報、ポート、初期化方法はデプロイ前に確認する必要があります。これらのコンテナは起動しておらず、データベースの移行も行っていません。
プロジェクトが異なれば同名のホストポートが競合します。以下の各セクションは独立したプロジェクトであり、全体を一つの Compose ファイルにまとめないでください。latest はあくまで例としての選択です。実際に導入する際はリリースとアーキテクチャを確認し、検証済みのバージョンを固定し、バックアップとロールバック条件を保持すべきです。
よく使うパラメータ
Compose V2 では docker compose を使用します。トップレベルの version はすでに廃止されているため、本文の設定では追加しません。restart: "no" は自動再起動しません。on-failure は失敗時のみ再起動します。always と unless-stopped は手動停止後にデーモンを再起動したときの動作が異なります。再起動ポリシーはヘルスチェックではなく、アプリケーションが外部にサービス提供できる状態であることも保証しません。
ポートの左側はホスト側の入口、右側はコンテナがリッスンするポートです。デフォルトでアドレスを指定しない公開は通常すべてのインターフェースにバインドされます。本文の一般的な Web サービスの例では 127.0.0.1 に変更しており、別のマシンからアクセスするには信頼できる LAN、SSH 転送、または認証付きリバースプロキシを別途設定する必要があります。DNS、ハードウェア、host ネットワーク系のサービスにこのルールをそのまま当てはめることはできません。

説明図:Docker のポートとボリューム:左と右を逆に見ないでください
データベース、設定、アップロードファイルは永続化する必要があります。マウントディレクトリ、ユーザー権限、データバックアップはデプロイの一部です。.env は値を記事にハードコードするのを避けるためのものにすぎず、暗号化された金庫ではないため、公開リポジトリにコミットしてはいけません。
docker compose config --quiet
docker compose up -d
docker compose logs --tail=100
構文チェックが通ることは、イメージが存在すること、アプリケーション設定が正しいこと、データを移行できることを意味しません。ここではこれらのデプロイコマンドを実際には実行していません。
cloudflare 貫通ツール flaresolverr
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:8191:8191
restart: unless-stopped
マインドマップ mind-map
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
mindmap:
container_name: mindmap
image: shuiche/mind-map
ports:
- 127.0.0.1:6679:8080
environment:
TZ: Asia/Shanghai
restart: always
小雅阿里リソース
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
xiaoya:
container_name: xiaoya
image: xiaoyaliu/alist
ports:
- 127.0.0.1:3579:80
volumes:
- /home/zsg/docker/xiaoya:/data
- /home/zsg/docker/xiaoya/alist:/opt/alist/data
environment:
TZ: Asia/Shanghai
restart: always
Snapdrop ウェブファイル転送
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
snapdrop:
image: lscr.io/linuxserver/snapdrop:latest
container_name: snapdrop
environment:
- TZ=Asia/Shanghai
volumes:
- /home/zsg/docker/snapdrop:/config
ports:
- 127.0.0.1:7635:80
restart: unless-stopped
web-check ウェブサイトテスト
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
webcheck:
container_name: webcheck
restart: unless-stopped
image: lissy93/web-check
ports:
- 127.0.0.1:3084:3000
environment:
- TZ=Asia/Shanghai
Thunder
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
services:
xunlei:
image: cnk3x/xunlei:latest
privileged: true
container_name: xunlei
hostname: nas
network_mode: host
environment:
- XL_WEB_PORT=4321
- XL_BA_USER=user
- XL_BA_PASSWORD=${XL_BA_PASSWORD:?set XL_BA_PASSWORD in a private .env file}
volumes:
- /home/zsg/docker/xunlei/data:/xunlei/data
- /home/zsg/docker/xunlei/downloads:/xunlei/downloads
restart: unless-stopped
Fail2ban
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
services:
fail2ban:
container_name: fail2ban
restart: 'no'
network_mode: host
volumes:
- /home/zsg/docker/fail2ban/data:/data
- /var/log:/var/log:ro
image: crazymax/fail2ban:latest
environment:
- TZ=Asia/Shanghai
- F2B_LOG_TARGET=STDOUT
- F2B_LOG_LEVEL=INFO
- F2B_DB_PURGE_AGE=1d
cap_add:
- NET_ADMIN
- NET_RAW
Synology DSM
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
docker network create -d macvlan \
--subnet=10.0.0.0/24 \
--gateway=10.0.0.1 \
--ip-range=10.0.0.160/28 \
-o parent=eth0 vdsm
# 先建立macvlan网络,eth0要改成你的网卡地址
# 以上按照你的局域网ip改
services:
synology-dsm:
container_name: dsm
restart: always
environment:
TZ: Asia/Shanghai
CPU_CORES: '2'
RAM_SIZE: 1024M
DISK_SIZE: 16G
ALLOCATE: N
DHCP: Y
devices:
- /dev/kvm
- /dev/vhost-net
device_cgroup_rules:
- c *:* rwm
cap_add:
- NET_ADMIN
ports:
- 127.0.0.1:5000:5000
volumes:
- /home/zsg/docker/dsm:/storage
stop_grace_period: 1m
image: kroese/virtual-dsm:latest
networks:
vdsm:
ipv4_address: 10.0.0.160
networks:
vdsm:
external: true
シングルサインオン Authelia
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
Compose はあくまでコンテナ構造であり、完全な認証、TLS、ルーティング、または業務設定を含みません。初期化とアクセス制御が完了するまで、信頼できないネットワークにエントリを開放しないでください。
services:
authelia:
container_name: authelia
image: authelia/authelia:latest
restart: unless-stopped
ports:
- 127.0.0.1:19091:9091
environment:
- TZ=Asia/Shanghai
volumes:
- /home/zsg/docker/authelia/config:/config
内網穿刺 FRP
frpsは公網側、frpcは内網側にあります。サードパーティ製イメージ、古いINI、異なるバージョンのパスを混用しないでください。バージョン、ポート、認証、TLSを一致させた完全な設定は当サイトの「Frp構築および設定」を参照してください。参考:公式プロジェクト。ルーターの管理画面を直接公開しないでください。
RustDesk リモートデスクトップ
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
リモートデスクトップクライアントは対応する TCP/UDP ポートに到達する必要があり、通常の HTTP リバースプロキシで代替することはできません。本項目は歴史的なポート構造を保持しており、デプロイ前に上流に従ってサーバーキー、データ共有、ネットワーク制限を確認する必要があります。設定が不十分な遠隔操作エントリを信頼できないネットワークに公開しないでください。
services:
hbbs:
container_name: rustdesk-hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server
command: hbbs
volumes:
- /home/zsg/docker/rustdesk/hbbs:/root
restart: always
hbbr:
container_name: rustdesk-hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server
command: hbbr
volumes:
- /home/zsg/docker/rustdesk/hbbr:/root
restart: always
Stirling PDF ツールボックス
現在の公式ドキュメントでは以下のイメージとデータパスを使用しています。旧 frooodle/s-pdf 設定は新規デプロイ例として使用しません:
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./stirling-data:/configs
まず制御されたエントリで初期化とアカウント設定を完了させ、ログインを無効にしてそのまま公網に開放しないでください。OCR、ストレージ、追加機能は現在のバージョンに従って引き続き設定します。旧環境変数を踏襲して全機能を約束しないでください。参考:公式 Docker インストール。実機未デプロイ。
Alist
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
alist:
restart: always
volumes:
- ./docker/alist:/opt/alist/data
- /home:/home/alist
ports:
- 127.0.0.1:5244:5244
environment:
- TZ=Asia/Shanghai
container_name: alist
image: xhofe/alist:latest
マインドマップ wiseapp
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
mkdir ./wiseapp
docker run --name wiseapp -d --mount type=bind,source=./wiseapp,target=/var/lib/wise-db wisemapping/wisemapping:latest
docker run --name wiseapp -d -v ./wiseapp:/var/lib/wise-db wisemapping/wisemapping:latest
docker cp wiseapp:/var/lib/wisemapping/db ./wiseapp
docker stop wiseapp;docker rm wiseapp
docker run --mount type=bind,source=./wiseapp/db,target=/var/lib/wisemapping/db -it --rm -p 6080:8080 wisemapping/wisemapping:latest
docker run --name wiseapp -v ./wiseapp/db:/var/lib/wisemapping/db -d -p 6080:8080 wisemapping/wisemapping:latest
默认账号:test@wisemapping.org密码test
默认账号:admin@wisemapping.org密码test
services:
wisemapping:
container_name: wiseapp
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ./wiseapp/db:/var/lib/wisemapping/db
ports:
- 127.0.0.1:6080:8080
image: wisemapping/wisemapping:latest
静的サイト nginx-php
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
nginx:
container_name: nginx
ports:
- 127.0.0.1:3387:80
environment:
- TZ=Asia/Shanghai
restart: always
volumes:
- ./zdj:/usr/share/nginx/html
image: gindex/nginx-php
サイトアクセス統計 Umami
現在の公式 Compose を基準とし、アプリケーションは内部ネットワーク経由で PostgreSQL にアクセスし、データベースのポートをホストマシンに公開しない。以下は新しい空のインスタンスの構造例であり、旧データベースのアップグレードコマンドではない:

説明図:アプリケーションとデータベース:データベースはポートを公開する必要がない
services:
umami:
image: ghcr.io/umami-software/umami:latest
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
environment:
DATABASE_URL: "postgresql://umami:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@db:5432/umami"
APP_SECRET: "${UMAMI_APP_SECRET:?set UMAMI_APP_SECRET}"
TWO_FACTOR_ENCRYPTION_KEY: "${UMAMI_2FA_KEY:?set UMAMI_2FA_KEY}"
depends_on:
db:
condition: service_healthy
init: true
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}"
volumes:
- umami-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami-db-data:
パスワードを接続URIに使用する場合は、URIセーフな高強度ランダム文字を選ぶか、特殊文字を正しくエンコードしてください。2FA暗号化キーはプロジェクトの要件に従って64桁の16進数値を生成し、保存後は勝手にローテーションしないでください。初期化方法は現在のプロジェクトに従い、出所やバージョンが一致しない固定SQLファイルを手動でインポートしないでください。PostgreSQLのメジャーバージョン変更時は必ず独立した移行を行い、新バージョンに古いデータディレクトリを直接開かせないでください。
参考:公式 Compose。実機未デプロイ。
WebSSH
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
webssh:
container_name: webssh
restart: 'no'
ports:
- 127.0.0.1:5032:5032
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
image: jrohy/webssh
メモmemos
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
memos:
container_name: memos
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:5230:5230
volumes:
- ./memos/:/var/opt/memos
image: neosmemo/memos:latest
Chatgpt-web
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
chatgpt-web:
container_name: chatgpt
restart: always
image: yidadaa/chatgpt-next-web
ports:
- 127.0.0.1:3355:3000
environment:
- TZ=Asia/Shanghai
- OPENAI_API_KEY=${OPENAI_API_KEY:?set OPENAI_API_KEY in a private .env file}
- CODE=${CODE:?set CODE in a private .env file}
- BASE_URL=https://api.openai.com
Traccar位置追跡
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
traccar.xmlデフォルトファイルをエクスポート
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > ./traccar/traccar.xml
services:
traccar:
container_name: traccar
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:3697:8082
- 5000-5150:5000-5150
- 5000-5150:5000-5150/udp
volumes:
- ./traccar/data:/opt/traccar/data:rw
- ./traccar/logs:/opt/traccar/logs:rw
- ./traccar/traccar.xml:/opt/traccar/conf/traccar.xml:ro
image: traccar/traccar:latest
リバースプロキシサーバーTraefik
元の段落は YAML の引用符が欠落しているだけでなく、コンテナ設定しかなく、エントリポイント、ルーティング、証明書、アクセス制御の設定がないため、完全な HTTPS リバースプロキシのチュートリアルとして成立しない。また、Docker ソケットを直接マウントしており、権限は個別に評価する必要がある。
現在のデプロイは Traefik 公式ガイド から一致するバージョンと設定方法を選び、まずテスト環境で entryPoints、providers、TLS、ルーティングを確認してから、実際のドメインに接続すること。DNS プロバイダの API キーは自分のプライベート設定にのみ置き、公開記事に貼り付けないこと。本記事は不完全で誤解を招く旧スタックを保持しない。
Readerリーディング
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
reader:
restart: always
container_name: reader
environment:
- SPRING_PROFILES_ACTIVE=prod
- READER_APP_SECURE=true
- READER_APP_SECUREKEY=282828
- READER_APP_INVITECODE=33655
- TZ=Asia/Shanghai
volumes:
- ./reader/log:/log
- ./reader/storage:/storage
ports:
- 127.0.0.1:8769:8080
image: hectorqin/reader
描画Draw
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
drawio:
container_name: draw
ports:
- 127.0.0.1:8322:8080
environment:
- TZ=Asia/Shanghai
restart: always
image: jgraph/drawio
RSS購読FreshRSS
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
freshrss:
container_name: freshrss
environment:
- CRON_MIN=*/45
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:5655:80
volumes:
- ./freshrss:/var/www/html/data
image: freshrss/freshrss
ESP32HOME
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
esphome:
container_name: esphome
ports:
- 127.0.0.1:6052:6052
environment:
- http_proxy=http://10.0.0.5:7890
- https_proxy=http://10.0.0.5:7890
- no_proxy=localhost,10.0.0.5,10.0.0.1,192.168.1.1,127.0.0.1,.local,localhost
image: esphome/esphome
手描きホワイトボード
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
excalidraw:
container_name: excalidraw
ports:
- 127.0.0.1:8099:80
environment:
- TZ=Asia/Shanghai
volumes:
- ./excalidraw:/app/web
restart: always
image: excalidraw/excalidraw
Nginx+PHP
PHP 5.6、7.3、8.0はかつて異なるサイトを並行運用するために使用されていましたが、これらのブランチは現在のサポート範囲外です。「異なるサイトで異なるPHP-FPMを使用できる」という考え方は残しますが、これらの旧バージョンの新規デプロイ一覧は提供しません。
新規アプリはまずサポートが継続されており、依存関係が互換性のある PHP バージョンを選び、その後 Nginx の FastCGI アップストリーム、サイトディレクトリと権限を設定する。旧サイトの移行はテスト環境で拡張機能、構文、データベースの互換性を確認する必要があり、イメージタグを変えるだけでアップグレードが完了するわけではない。参考:PHP サポート期間。
phpmyadmin
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
# 任意服务器
docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 18080:80 phpmyadmin
# 指定服务器及端口
docker run --name phpmyadmin -d -e PMA_HOST=127.0.0.1 -e PMA_PORT=3306 -p 18080:80 phpmyadmin
MySQL
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
mysql:
container_name: mysql
restart: always
ports:
- 127.0.0.1:3306:3306
volumes:
- ./mysql/data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:?set MYSQL_ROOT_PASSWORD in a private .env file}
- TZ=Asia/Shanghai
image: mysql
Linuxコマンド検索
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
web:
image: stilleshan/linux-command
container_name: linux-command
ports:
- 127.0.0.1:7326:80
restart: always
docker-proxy
旧設定は認証なしの 2375 を公開し、大量の書き込み操作を許可しており、リスクが高すぎるため、そのままコピーできるデプロイ方法として保持しない。Docker API と socket はホストレベルの権限をもたらす可能性があり、socket マウントに :ro を付けても API が読み取り専用になるわけではない。

説明図:Docker socket:普通の読み取り専用ファイルではない
どうしてもコンテナ状態を読み取る必要がある場合は、制限付き socket proxy を検討できる:専用の内部ネットワークのみに接続し、2375 を公開せず、デフォルトで POST を無効にし、本当に必要な読み取りインターフェースを個別に開放する。これも依然として機密性の高いインターフェースであり、安全な隔离の万能な境界ではない。参考:docker-socket-proxy プロジェクト。具体的な統合は呼び出し側ごとに再確認する必要があり、本文では全権限の設定は提供しない。
ファイル急便ボックス
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
filecodebox:
container_name: filecodebox
restart: always
ports:
- 127.0.0.1:12345:12345
volumes:
- ./FileCodeBox/:/app/data
image: lanol/filecodebox:latest
MQTT
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
Compose はあくまでコンテナ構造であり、完全な認証、TLS、ルーティング、または業務設定を含みません。初期化とアクセス制御が完了するまで、信頼できないネットワークにエントリを開放しないでください。
services:
eclipse-mosquitto:
container_name: MQTT
restart: always
ports:
- 127.0.0.1:1883:1883
- 127.0.0.1:9001:9001
volumes:
- ./mqtt/conf:/mosquitto/config
- ./mqtt/data:/mosquitto/data
- ./mqtt/log:/mosquitto/log
image: eclipse-mosquitto
速度測定speedtest
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
speedtest:
container_name: speedtest
restart: always
ports:
- 127.0.0.1:12345:80
image: adolfintel/speedtest
サブスクリプション変換
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
subweb:
container_name: subweb
restart: always
ports:
- 127.0.0.1:58080:80
image: careywong/subweb:latest
subconverter:
container_name: sub
restart: always
ports:
- 127.0.0.1:25500:25500
image: tindy2013/subconverter:latest
Dockerコマンドをスタックに変換
特殊文字を含むマウントパスは引用符で囲む必要があります。以下のイメージとページ機能は依然として実機再検証されていない過去の設定です。変換ツールが生成したComposeも、権限、ボリューム、ポート、認証情報を自分で再確認する必要があり、変換後すぐに安全なデプロイ方案と見なしてはいけません。
services:
composerize:
image: alcapone1933/composerize
restart: unless-stopped
ports:
- "127.0.0.1:9080:80"
environment:
TZ: Asia/Shanghai
volumes:
- ./composerize:/var/www
Docker更新通知
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
services:
diun:
container_name: diun
restart: always
environment:
- TZ=Asia/Shanghai
- LOG_LEVEL=info
- LOG_JSON=false
- DIUN_PROVIDERS_DOCKER=true
- DIUN_PROVIDERS_FILE_FILENAME=/custom-images.yml
volumes:
- ./diun:/data
- ./diun/custom-images.yml:/custom-images.yml:ro
- ./diun/diun.yml:/diun.yml:ro
- /var/run/docker.sock:/var/run/docker.sock
image: crazymax/diun:latest
ダッシュボードhomepage
HomepageとDiunは別のプロジェクトであり、デプロイ時はHomepage自身のイメージを使用し、許可するアクセスHostを設定してください:
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
environment:
HOMEPAGE_ALLOWED_HOSTS: "localhost:3000,127.0.0.1:3000"
volumes:
- ./config:/app/config
ドメインでアクセスする場合は、許可リストを実際のドメインに変更する。この最小示例は Docker socket に接続していない;コンテナ状態の統合が必要な場合は、別途アクセス権限を評価する。参考:公式 Docker 説明。設定はドキュメントに従って修正済みで、実機では実行していない。
triliumノート
nriver/trilium-cnはサードパーティ製の中国語イメージです。現在のプロジェクトはTriliumNext/Triliumによってメンテナンスされており、古いイメージと現在の公式リリースを同一視してはいけません。
新規デプロイは公式 Docker ガイドに従い、triliumnext/trilium の確認済みバージョンを選択し、/home/node/trilium-data を永続化します。アップグレード前にサーバー側とクライアント側の同期バージョンを確認し、既存のノートライブラリを開くために直接 latest に切り替えないでください。旧ライブラリの移行には個別のバックアップと検証が必要であり、本記事ではそれを完了済みの操作として書き換えません。
FileBrowserファイル管理
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
filebrowser:
container_name: filebrowser
ports:
- 127.0.0.1:9696:80
environment:
- TZ=Asia/Shanghai
- PUID=0
- PGID=0
volumes:
- .:/Disk
- ./filebrowser/database.db:/database.db
- ./filebrowser/filebrowser.json:/.filebrowser.json
- ./filebrowser/cache:/cache
image: filebrowser/filebrowser
VSCode
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
code-server:
container_name: vscode
environment:
- TZ=Asia/Shanghai
- PUID=0
- PGID=0
- PASSWORD=${PASSWORD:?set PASSWORD in a private .env file}
- DEFAULT_WORKSPACE=/000
ports:
- 127.0.0.1:5797:8443
volumes:
- ./vscode:/config
- .:/000
restart: always
image: linuxserver/code-server
百度脳図
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
kityminder:
container_name: mind
restart: always
ports:
- 127.0.0.1:2333:80
environment:
- TZ=Asia/Shanghai
volumes:
- ./mind:/data
image: xinyewdz/kityminder
RSSPush
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
rsspush:
container_name: rsspush
ports:
- 127.0.0.1:6863:8000
volumes:
- ./rsspush:/rsspush/api/data
environment:
- TZ=Asia/Shanghai
- RSS_BASE=http://10.0.0.9:8556
- ADMIN_KEY=123456
image: easychen/rsspush
OCR文字認識
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
trwebocr:
ports:
- 127.0.0.1:18089:8089
restart: always
container_name: trwebocr
image: mmmz/trwebocr
アルバム(MT Photo)
旧イメージ名 mtphotos/mt-photos/photosync は誤りです。現在のプロジェクトがリリースしているのは mtphotos/mt-photos です。以下ではコンテナ構造のみを説明し、認証とアルバムのインポートはプロジェクトの要件に従って処理します:
services:
mt-photos:
image: mtphotos/mt-photos:latest
restart: unless-stopped
ports:
- "127.0.0.1:8063:8063"
environment:
TZ: Asia/Shanghai
volumes:
- ./mt_photos/config:/config
- ./mt_photos/upload:/upload
サービスが使用していないCIFSボリュームを追加したり、共有アカウントのパスワードを公開設定に書き込んだりしないでください。既存の写真ディレクトリとアップロードディレクトリを区別し、外部アルバムをマウントする前に現在のドキュメントを確認してください。参考:プロジェクトリリースイメージ。実機未デプロイ。
ADGuard Home
旧設定の image: run は有効なプロジェクトイメージではなく、adguard/adguardhome であるべきです。DNS サービスは指定された LAN デバイスから到達可能である必要があるため、53 番ポートをループバックアドレスのみにバインドした上で LAN 全体で使用できると主張することはできません。
新規デプロイは公式 Docker ガイドに従い、work と conf の 2 つの永続化ディレクトリと必要なポートを設定し、まずホストの 53 番ポートが既存の DNS サービスに占有されていないか確認してください。3000 は通常初回セットアップに使用され、セットアップ後の管理ポートは実際に選択したものに従います。既存のネットワークを確認せずにシステム DNS を停止したり、DNS と管理パネルを保護なしで公網に公開したりしないでください。本記事では、すべてのネットワークに適用できると主張するポートマッピングのセットは現時点では提供しません。
SmartDNS
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
services:
smartdns:
network_mode: host
hostname: smartdns
container_name: smartdns
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ./smartdns:/smartdns
image: ghostry/smartdns
xTeVe
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
xteve:
container_name: xteve
restart: always
hostname: xteve
ports:
- 127.0.0.1:34400:34400
logging:
options: max-size=10m,max-file=3
environment:
- TZ=Asia/Shanghai
volumes:
- ./xteve/xteve:/root/.xteve:rw
- ./xteve/config:/config:rw
- ./xteve/tmp:/tmp/xteve:rw
- ./xteve/tvheadend/data:/TVH
image: alturismo/xteve
思源筆記(siyuan)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
siyuan:
container_name: siyuan
restart: always
volumes:
- ./siyuan:/siyuan
ports:
- 127.0.0.1:6806:6806
image: b3log/siyuan
ウェブ監視(uptime-kuma)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
uptime-kuma:
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:3001:3001
volumes:
- ./uptime-kuma/data:/app/data
container_name: uptime-kuma
image: louislam/uptime-kuma:latest
映像ロボット(movierobot)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
movie-robot:
restart: always
container_name: movie-robot
ports:
- 127.0.0.1:1329:1329
volumes:
- ./movie-robot:/data
- /path/to/media:/media
environment:
- LICENSE_KEY=xxxxxxxxxx
image: yipengfei/movie-robot
overseerr
サードパーティ製Overseerrイメージと現在の公式リリースは分けて確認する必要があります。現在の関連プロジェクトはSeerrに移行しており、公式イメージはghcr.io/seerr-team/seerrまたはseerr/seerrとしてリリースされています。古いコンテナ名と新プロジェクトを無条件に互換してはいけません。
新規デプロイはSeerr入門ドキュメントを参照してください。旧Overseerrインスタンスは、対応する移行説明、バックアップ設定、データベースを確認してから移行するか判断してください。ここではデプロイの入口のみを紹介しており、実際にメディアサービスの移行を実行したわけではありません。
docker可視化管理(portainer)
現在の Portainer CE の主要な管理入口は HTTPS 9443 です。以下の入口はローカルホストのみで待ち受けており、リモートで使用するには安全な転送または検証済みのリバースプロキシを併用する必要があります:
services:
portainer:
image: portainer/portainer-ce:latest
restart: unless-stopped
ports:
- "127.0.0.1:9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Portainer は Docker socket を通じてホストのコンテナを管理するため、高い権限を持ちます。まず管理者の初期化を完了させ、誰も管理していない入口を公開しないでください。証明書も実際のアクセスドメインと信頼方法に応じて設定するものであり、読者にすべての証明書エラーを無視するよう求めているわけではありません。参考:公式 CE インストール。実機でのデプロイは未実施。
RSS生成(rsshub)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
rsshub:
restart: always
container_name: rsshub
ports:
- 127.0.0.1:8556:1200
image: diygod/rsshub
flexget
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
flexget:
image: madwind/flexget
container_name: flexget
environment:
FG_WEBUI_PASSWD: ${FG_WEBUI_PASSWD:?set FG_WEBUI_PASSWD in a private .env file}
FG_LOG_LEVEL: INFO
TZ: Asia/Shanghai
PUID: 1000
PGID: 1000
volumes:
- ./flexget/config:/config
- ./flexget/downloads:/downloads
ports:
- 127.0.0.1:8385:3539
restart: always
bark
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
bark-server:
restart: always
environment:
- TZ=Asia/Shanghai
container_name: bark
ports:
- 127.0.0.1:8383:8080
volumes:
- ./bark/data:/data
image: finab/bark-server
パスワード管理(vaultwarden/Bitwarden)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
Compose はあくまでコンテナ構造であり、完全な認証、TLS、ルーティング、または業務設定を含みません。初期化とアクセス制御が完了するまで、信頼できないネットワークにエントリを開放しないでください。
services:
server:
restart: always
container_name: vaultwarden
environment:
- TZ=Asia/Shanghai
volumes:
- ./Bitwarden/data/:/data/
ports:
- 127.0.0.1:12256:80
image: vaultwarden/server
dockerコンテナ自動更新(watchtower)
Watchtowerは実行中のイメージを自動的に置き換えることができます。今回の確認時点で、元のプロジェクトリポジトリはアーカイブされており、新規デプロイのデフォルト推奨としては適しません。特にデータベース、ノート、パスワード管理、コアサービスは、リリースノートを確認せずに自動更新するのに適していません。

説明図:コンテナ更新:通知の後、まずバックアップしてから作業
より安全な流れは、更新通知を受け取った後に変更内容を確認し、バックアップと復元テストを行い、保守ウィンドウで手動更新してサービスとデータを確認し、利用可能なロールバック条件を保持することです。ロールバックイメージがあっても、すでに移行されたデータ形式を戻せるとは限りません。Diun は更新通知として使用できますが、通知自体は更新の完了を意味しません。
参考:Watchtower リポジトリの状態、Diun。削除されたのは記事中の自動更新の提案であり、実行中のコンテナには何も変更を加えていません。
URLブックマーク(shaarli)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
shaarli:
container_name: Shaarli
restart: always
ports:
- 127.0.0.1:8561:80
volumes:
- ./shaarli:/var/www/shaarli/data
image: shaarli/shaarli
スマートホーム(HASS)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
本項目はホストのネットワーク、デバイス、または高権限マウントに関わります。本当に必要な場合かつ信頼できる環境でのみ評価し、コンテナを絶対的な分離とは見なしません。特に Docker socket の権限は特に機微です。
services:
home-assistant:
restart: always
container_name: hass
privileged: true
network_mode: host
environment:
- TZ=Asia/Shanghai
volumes:
- ./hass:/config
- /run/dbus:/run/dbus
- /var/run/dbus:/var/run/dbus
- /dev:/dev
- /var/run/docker.sock:/var/run/docker.sock
- /dev/bus/usb:/dev/bus/usb
image: homeassistant/home-assistant:latest
WizNote(wiz)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
wizserver:
container_name: wiz
volumes:
- ./wiz/data:/wiz/storage
- /etc/localtime:/etc/localtime
ports:
- 127.0.0.1:8357:80
- 127.0.0.1:9269:9269/udp
image: wiznote/wizserver
デフォルトの管理者アカウント:admin@wiz.cn、パスワード:123456
踏み台ホスト(next-terminal)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
Compose はあくまでコンテナ構造であり、完全な認証、TLS、ルーティング、または業務設定を含みません。初期化とアクセス制御が完了するまで、信頼できないネットワークにエントリを開放しないでください。
services:
guacd:
container_name: guacd
image: dushixiang/guacd:latest
volumes:
- ./next-terminal/data:/usr/local/next-terminal/data
restart: always
next-terminal:
container_name: next-terminal
image: dushixiang/next-terminal:latest
environment:
DB: sqlite
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
ports:
- 127.0.0.1:8068:8088
volumes:
- /etc/localtime:/etc/localtime
- ./next-terminal/data:/usr/local/next-terminal/data
restart: always
アルバム(photoprism)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
photoprism:
container_name: photoprism
ports:
- 127.0.0.1:8568:2342
environment:
- PHOTOPRISM_UPLOAD_NSFW=false
- PHOTOPRISM_ADMIN_PASSWORD=${PHOTOPRISM_ADMIN_PASSWORD:?set PHOTOPRISM_ADMIN_PASSWORD in a private .env file}
volumes:
- ./photoprism:/photoprism/storage
- ./Pictures/Pictures:/photoprism/originals
- ./Pictures/Example:/photoprism/originals/Example
image: photoprism/photoprism
node-red
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
node-red:
container_name: nodered
restart: always
ports:
- 127.0.0.1:1880:1880
environment:
- TZ=Asia/Shanghai
volumes:
- ./nodered/data:/data
image: nodered/node-red
PLEXモニター(Tautulli)
Tautulliは公式プロジェクトが提供するイメージを使用すべきであり、argparseではありません:
services:
tautulli:
image: tautulli/tautulli:latest
restart: unless-stopped
ports:
- "127.0.0.1:8181:8181"
volumes:
- ./tautulli/config:/config
environment:
TZ: Asia/Shanghai
初期化時に自分の Plex に接続し、対応する認証情報を適切に保護すること。統計サービスは再生データを読めるからといって、そのまま公網に公開する必要はない。参考:公式プロジェクト。実機でのデプロイは未実施。
個人ナビゲーション(onenav)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
onenav:
container_name: onenav
ports:
- 127.0.0.1:8252:80
environment:
- USER=zsg
- PASSWORD=${PASSWORD:?set PASSWORD in a private .env file}
volumes:
- ./onenav:/data/wwwroot/default/data
image: helloz/onenav
ウェブクリップ(wallabag)
履歴設定であり、現在のイメージで実機再テストはまだ行っていません。イメージタグ、アプリケーション設定、ボリュームパス、初回初期化はメンテナーの現在の説明に従ってください。以下は検証済みの新しいデプロイ方案として扱えません。
services:
wallabag:
container_name: wallabag
restart: always
volumes:
- ./wallabag/data:/var/www/wallabag/data
- ./wallabag/images:/var/www/wallabag/web/assets/images
ports:
- 127.0.0.1:5631:80
environment:
- SYMFONY__ENV__DOMAIN_NAME=https://wb.abc.com:8080
image: wallabag/wallabag
TTRSS
wangqiru/ttrssはかつてマルチコンテナ方案とPostgreSQL 13を使用していました。これは特定プロジェクトの過去の設定であり、公式アップストリームの汎用Composeではありません。PostgreSQL 13は新規デプロイのデフォルトデータベースとして使い続けるのに適していません。
新規デプロイ時はまずTiny Tiny RSS アップストリームと選択したイメージメンテナーの現在のインストール手順を確認してください。既存のPostgreSQLデータは、サポートされているエクスポート・復元またはアップグレード手順に従って移行する必要があり、13のデータディレクトリを任意の新しいメジャーバージョンのイメージに直接マウントしてはいけません。データベースのパスワードは自分で生成し、初期化一覧は使用するバージョンと一致させる必要があります。
メンテナンスとバックアップ
設定ファイル、データベースバックアップ、アップロードディレクトリはそれぞれ分けて保存し、復元テスト後にサービスを更新してください。起動失敗を「修復」するために、ディスク全体のクリーンアップ、データボリュームの削除、データベースのリセットコマンドを実行しないでください。参考:Docker ポート公開、再起動ポリシー、Compose version フィールド。