Docker管理がついにシンプルになった
わずか5ヶ月でStar数が4,400に達した。Docker管理ツールの世界に新星が現れた――Dockhandだ。その目的は一つ:Dockerコンテナの管理をよりシンプルにすること。しかし、それだけに留まらない。

ComposeプロジェクトをYAMLを編集せずにGUIで直接設定できる。複数のサーバーがあっても、リモートマシンを一元管理可能。セキュリティと運用面も充実しており、イメージの脆弱性スキャン、自動更新、障害時のロールバックも備える。認証も簡単で、OIDCとSSOが標準搭載かつ完全無料だ。
これまで別々にインストールしていたWatchtower、Dozzle、Diunなどのツールも、すべて一つのインターフェースで完結する。モダンなDocker管理プラットフォームとして、Portainerに匹敵する強力なライバルだ。
なぜこのDashboardに注目すべきか?
Portainerが有料化した機能を、無料で提供しているからだ。これが最大の驚きだ。2025年末、PortainerはOIDC/SSOとRBACを有料版に閉じ込めた。コミュニティは激怒した。多くのユーザーが自己ホスティング目的でPortainerを使っていたのに、SSOのために年間数十ユーロを支払う羽目になったのだ。
Dockhandは逆のアプローチを取る。OIDC/SSOは無料で提供し、RBACとLDAP/ADのみをエンタープライズ版に置いている。自己ホスティング環境にSSOを追加したいだけなら、Dockhandは一切費用がかからない。

Authentication Settings
友好的な認証ポリシー以外にも、Docker管理の一連のプロセスを繋ぎ合わせている:
01. コンテナのライフサイクル管理。
起動、停止、再起動、削除をUIからワンクリックで実行可能。バッチ処理にも対応。ログはリアルタイムストリームで確認でき、ANSIカラーも正しく表示されるため、Dozzleを別途立ち上げる必要はない。コンテナ内でのデバッグもWebターミナルを開くだけでOK。SSHは不要だ。
Containers View
02. Composeスタックのビジュアル編集。
視覚的なエディタを搭載。YAMLにエラーがあれば即座にハイライト表示され、「デプロイ失敗」とだけ表示するツールとは違う。重要なのは、Gitリポジトリから直接スタックをPullできる点だ。Webhookを設定すれば、プッシュするだけで自動デプロイが走る。GitOpsスタイルのデプロイを行うには、これまでスクリプトを書くか、ArgoCDのような重いツールを導入する必要があった。Dockhandはその機能を単一のインターフェースに統合している。

Stacks Editor
03. イメージ脆弱性スキャン。
GrypeとTrivyのスキャナーを内蔵。以前はコンプライアンスのためにサードパーティ製ツールを導入して苦労したが、今ではボタン一つですぐに結果が表示され、深刻度でフィルタリングも可能。スキャン結果はイメージのSHA256値でキャッシュされ、毎回フルスキャンする必要はない。
Images View
04. ロールバック保護付きの自動更新。
コンテナの定期更新をスケジュールできるが、単に新しいイメージをPullするだけの雑な方法ではない。更新前に脆弱性スキャンを行い、新しいイメージの方が脆弱性が多い場合は、更新を自動でブロックできる。万が一更新中に問題が発生しても、ロールバック保護メカニズムが保険になる。脆弱性チェックもロールバックもないWatchtowerを使っている人も多いが、作者はこの痛点を見逃さず、解決策を組み込んだ。
Schedules
05. Hawser Agentによるリモート管理。
HawserというAgentが含まれている。これが賢い設計だ:Agentは外向きにWebSocket接続を開始するだけなので、ファイアウォールでポートを開けたり、Dockerソケットを露出させる必要がない。NATの裏にいてIPが動的であっても、TCPポートを晒すよりずっと安全だ。
Networks
使い心地を良くする細かい機能:
- 高速なUI: Svelte 5で構築されており、古いフレームワークのツールより軽快。
- テーマ: ライト/ダークモード対応。
- カスタマイズ可能なダッシュボード: タイルをドラッグしてサイズ変更や配置変更が可能。
Dashboard Light / Dashboard Dark
- Wolfi Hardened Images: OSレイヤーをゼロから構築。明示的にパッケージを宣言。
- ゼロテレメトリー: ユーザーの許可なくデータを送信しない。
Security Settings
- 通知フレームワーク: SMTPメールとAppriseをサポート。Discord、Slack、Telegram、ntfy、Gotify、Pushoverなど50以上のサービスと連携可能。コンテナの起動/停止、更新失敗、新規脆弱性発見時に通知を受け取れる。
Activity Log
デプロイは難しい?
非常に簡単。以下の1コマンドで起動:
bashbashdocker run -d --name dockhand --restart unless-stopped \
-p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v dockhand_data:/app/data \
fnsys/dockhand:latest
ブラウザで localhost:3000にアクセスすればすぐに使える。注意点として、デフォルトではrootで実行されないため、Dockerソケットの権限調整が必要な場合がある。一番簡単なのは --user 0:0を追加してrootで実行するか、--group-addでDockerグループのGIDを追加することだ。
欠点はあるか?
完璧ではない。現在はDockerとComposeのみをサポートしており、KubernetesやSwarmは未対応。この点ではPortainerの方が優れている。また、RBACなどのエンタープライズ機能は有料だが、OIDC/SSOが無料であるため、参入障壁はPortainerよりはるかに低い。
ライセンスについて
現在はBSL 1.1ライセンスを採用。個人利用、社内利用、非営利、教育目的は無料だが、SaaSとして販売することは禁止されている。2029年1月1日以降は自動的にApache 2.0に移行し、完全にオープンソースとなる。
もしK8sの複雑さを望まず、Dockerをしっかり管理したいだけなら、Dockhandで十分すぎる。
Terminal & Logs
最後に
私は昔、運用(Ops)としてDockerを頻繁に使っていた。最初はCLI、慣れてからは無料のGUIであるPortainerに乗り換え、長年満足して使っていた。しかし最近Dockhandを見つけ、試してみたら、さらに使いやすかった。まさに「進化系」だ。Dockerをよく使う方は、ぜひ試してほしい。
コメント欄で皆さんがDockerをどう使っているか教えてください。プロジェクトはBSL 1.1ライセンスで公開されているので、GitHubリポジトリでソースコードやドキュメントを確認してみてください。
オープンソースアドレス: https://github.com/Finsys/dockhand