「俺のマシンでは動くのに……」——この言葉を永遠に封印してくれるのがDockerだ。コンテナ技術によって、アプリとその依存関係を全部パッケージ化できる。OSが違っても、ライブラリのバージョンが違っても、Dockerさえあれば動く。
おうちサーバーにDockerを入れてから、サービスの追加が爆速になった。Jellyfin、Nextcloud、Gitea、Vaultwarden——全部`docker compose up -d`で10分以内に起動する。昔みたいに依存関係で半日溶かすことがなくなった。
Docker Composeは特に神ツール。`docker-compose.yml`にサービスの設定を書いて、`docker compose up -d`一発。設定ファイルをGitで管理しておけば、サーバーを再構築するときも10分で全サービスが復活する。
僕が実際に動かしてるDockerサービスたち:
- Nginx Proxy Manager — リバースプロキシとSSL証明書(Let’s Encrypt)をGUIで管理。証明書の自動更新もお任せ。
- Jellyfin — 自前のNetflix。家中の動画・音楽を一括管理。
- Vaultwarden — Bitwarden互換のパスワードマネージャーを自前で。パスワードを他人のサーバーに預けたくない派に。
- Gitea — 軽量Gitサーバー。GitHubのプライベートリポジトリを自宅に。
- Uptime Kuma — 全サービスの死活監視。落ちたらDiscordに通知。
- Portainer — Docker管理用GUI。コンテナの状態確認やログ閲覧がブラウザで完結。
Dockerのベストプラクティス:ボリュームはバインドマウントで。/opt/docker/サービス名/data みたいに実ディレクトリをマウントする。コンテナを消してもデータが残る。そしてcomposeファイルはGit管理。これだけで運用の安心感が段違い。