ストレージ
上級

NAS Dockerコンテナ運用(ナス ドッカー コンテナ ウンヨウ)

NAS上でDockerコンテナを運用することで、メディアサーバー・広告ブロッカー・VPN・監視ツールなど多様なセルフホストアプリケーションを一台のNASに集約でき、Container StationやPortainerで管理する。

0 回閲覧
0 いいね

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管理ツール

ツール提供形態対応NASDocker ComposeStack管理テンプレート
Synology Container Manager内蔵アプリSynology DSM 7.2+○○△(限定)
QNAP Container Station内蔵アプリQNAP QTS 5+○○○
Portainer CEDocker上にデプロイ全NAS○○○(App Templates)
CasaOSDocker上にデプロイ全NAS○○○(App Store)
DockgeDocker上にデプロイ全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-holeDNS広告ブロッカー極低(RAM 50MB)
広告ブロックAdGuard HomeDNS広告ブロッカー+暗号化DNS低(RAM 100MB)
VPNWireGuard / wg-easy自宅VPNサーバー極低
VPNTailscaleメッシュVPN極低
パスワードVaultwardenBitwarden互換パスワード管理極低(RAM 30MB)
写真管理ImmichGoogle Photos代替中(機械学習使用時は高)
監視Uptime Kumaサービス稼働監視極低(RAM 50MB)
RSSFreshRSS / MinifluxRSSリーダー極低
ダッシュボードHomepage / Homarrセルフホストポータル極低
リバースプロキシNginx Proxy ManagerSSL/リバースプロキシ管理低
自動化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以上)を選ぶことを強く推奨する。