NAS Dockerコンテナ運用(ナス ドッカー コンテナ ウンヨウ)
NAS上でDockerコンテナを運用することで、メディアサーバー・広告ブロッカー・VPN・監視ツールなど多様なセルフホストアプリケーションを一台のNASに集約でき、Container StationやPortainerで管理する。
NAS Dockerコンテナ運用とは
Dockerは軽量な仮想化技術であり、アプリケーションを「コンテナ」と呼ばれる独立した実行環境にパッケージ化して動作させる。NAS上でDockerを活用することで、メディアサーバー・DNS広告ブロッカー・VPNサーバー・パスワードマネージャー・監視ダッシュボードなど、従来はクラウドサービスに依存していた機能を自宅のNAS1台に集約できる。
Synology(Container Manager)、QNAP(Container Station)、ASUSTOR(Portainer)は標準でDocker実行環境を提供しており、GUIベースでコンテナの作成・管理が可能である。TrueNAS SCALEはKubernetesベースのアプリカタログを提供しつつ、Docker Composeも利用できる。
ただしNASでDockerを運用するにはx86系CPU(Intel/AMD)搭載モデルが必要で、ARM系CPUのエントリーNASでは対応するDockerイメージが限定されるか、そもそもDocker機能が提供されていない場合がある。
NASにおけるDocker管理ツール
| ツール | 提供形態 | 対応NAS | Docker Compose | Stack管理 | テンプレート |
|---|---|---|---|---|---|
| Synology Container Manager | 内蔵アプリ | Synology DSM 7.2+ | ○ | ○ | △(限定) |
| QNAP Container Station | 内蔵アプリ | QNAP QTS 5+ | ○ | ○ | ○ |
| Portainer CE | Docker上にデプロイ | 全NAS | ○ | ○ | ○(App Templates) |
| CasaOS | Docker上にデプロイ | 全NAS | ○ | ○ | ○(App Store) |
| Dockge | Docker上にデプロイ | 全NAS | ○ | ○ | △ |
Portainer CE
Portainerは最も普及しているDocker管理WebUIで、NASのDocker環境上にコンテナとしてデプロイする。複数のDocker/Kubernetes環境を一元管理でき、Community Edition(CE)は完全無料。コンテナのログ確認・リソース監視・ネットワーク管理・ボリューム管理をブラウザベースで行える。
CasaOS
CasaOSはセルフホスティングに特化した軽量OSで、Docker上で動作する「App Store」のようなUIを提供する。技術的な知識が少なくてもワンクリックでアプリケーションをインストールできるため、Docker初心者に適している。
NASで人気のDockerコンテナ
| カテゴリ | コンテナ名 | 用途 | リソース消費 |
|---|---|---|---|
| メディア | Jellyfin | 動画/音楽ストリーミング | 中〜高(トランスコード時) |
| メディア | Plex | 動画/音楽ストリーミング | 中〜高 |
| 広告ブロック | Pi-hole | DNS広告ブロッカー | 極低(RAM 50MB) |
| 広告ブロック | AdGuard Home | DNS広告ブロッカー+暗号化DNS | 低(RAM 100MB) |
| VPN | WireGuard / wg-easy | 自宅VPNサーバー | 極低 |
| VPN | Tailscale | メッシュVPN | 極低 |
| パスワード | Vaultwarden | Bitwarden互換パスワード管理 | 極低(RAM 30MB) |
| 写真管理 | Immich | Google Photos代替 | 中(機械学習使用時は高) |
| 監視 | Uptime Kuma | サービス稼働監視 | 極低(RAM 50MB) |
| RSS | FreshRSS / Miniflux | RSSリーダー | 極低 |
| ダッシュボード | Homepage / Homarr | セルフホストポータル | 極低 |
| リバースプロキシ | Nginx Proxy Manager | SSL/リバースプロキシ管理 | 低 |
| 自動化 | Watchtower | コンテナ自動更新 | 極低 |
| ダウンロード | *arr Stack | メディア自動取得 | 低〜中 |
Docker Composeによる構成管理
Docker Composeは複数のコンテナをYAMLファイルで定義し、一括で起動・停止・更新できるツールである。NASでの運用では、関連するコンテナをまとめたCompose fileを作成し、docker compose up -d で一括デプロイするのが標準的なワークフローとなっている。
典型的なホームサーバー構成例
以下はNASでよく構成される基本的なセルフホストスタックの例である:
- Nginx Proxy Manager: リバースプロキシ + SSL証明書自動取得
- Jellyfin: メディアストリーミング
- Vaultwarden: パスワード管理
- Pi-hole: DNS広告ブロック
- Uptime Kuma: サービス監視
- Watchtower: コンテナ自動更新
この構成の合計リソース消費は、トランスコード非使用時でRAM約512MB・CPU負荷5%以下と軽量であり、Intel N5105搭載の4ベイNASなら余裕を持って運用できる。
リバースプロキシとSSL
Docker上の複数サービスを外部からアクセスする際、各コンテナに個別のポート番号でアクセスするのは運用上不便である。リバースプロキシを導入することで、jellyfin.home.example.com、vault.home.example.com のようにサブドメインで各サービスにアクセスでき、SSL証明書の一元管理も実現する。
Nginx Proxy Manager(NPM)
NPMはDockerコンテナとして動作するリバースプロキシ管理ツールで、WebUIからホスト追加・SSL証明書取得(Let's Encrypt自動更新)・アクセス制御を設定できる。Nginx の設定ファイルを手書きする必要がなく、NAS のDocker環境で最も広く使われているリバースプロキシソリューションである。
Cloudflare Tunnel
Cloudflare Tunnelを使えば、ルーターのポートフォワーディングなしにNAS上のサービスを安全に外部公開できる。cloudflared コンテナをNASにデプロイし、Cloudflareダッシュボードから公開するサービスを設定するだけで、DDoS保護付きのリバースプロキシが無料で構成される。ポートを開放しないため、NASへの直接攻撃リスクを大幅に低減できる。
NASでDockerを運用する際の注意点
ストレージのパフォーマンス
DockerコンテナのデータはNASのボリューム上に保存されるため、HDD上で運用するとI/O性能がボトルネックになる場合がある。特にデータベース(MariaDB/PostgreSQL)を使うコンテナは、SSDキャッシュやNVMe SSD上のボリュームに配置することでパフォーマンスが劇的に改善する。
メモリ管理
NASのRAMは限られているため、各コンテナにメモリ制限を設定してOOM(Out of Memory)Killerによるコンテナ強制停止を防ぐ。Synology DSM 7.2のContainer Managerではコンテナごとのリソース制限をGUIから設定できる。
アップデート戦略
Watchtowerによる自動更新は便利だが、メジャーバージョンアップで破壊的変更が入る可能性がある。本番環境ではマイナーバージョンのみ自動更新し、メジャーバージョンアップはリリースノート確認後に手動で行うポリシーが安全である。
よくある質問(FAQ)
Q: NASのDockerとVPSのDockerの違いは?
A: NAS Dockerは自宅LANに物理的に存在するため、ローカルファイルへの高速アクセスとプライバシー保護に優れる。VPSは高い可用性と回線速度が利点だが月額コストが発生し、ストレージ容量も限定的。NASはメディアサーバーや写真管理など大容量ローカルデータを扱うサービスに適し、VPSはブログやWebアプリなど外部公開が主目的のサービスに適する。
Q: Docker初心者はどこから始めるべき?
A: まず Portainer CE をインストールしてDocker管理のWebUIを確保し、次に Pi-hole(DNS広告ブロッカー)をデプロイするのが定番の入門ルート。Pi-holeはリソース消費が極めて少なく、設定が簡単で、導入効果(広告ブロック)が即座に体感できるため、Dockerの学習にも最適。その後、Vaultwarden → Uptime Kuma → Jellyfinの順に段階的に拡張していくのが無理のない進め方である。
Q: ARM CPUのNASでDockerは使える?
A: 一部制限付きで使える。Docker Hubの公式イメージの多くはlinux/arm64(aarch64)にも対応しているが、一部のサードパーティイメージはx86_64のみ対応のものがある。Synology DS124(Realtek RTD1619B)やDS223(同チップ)はContainer Manager非対応のため、x86系CPU搭載モデル(DS224+のIntel J4125以上)を選ぶことを強く推奨する。