不遇なWindowsユーザー向けの、Dockerダッシュボードアプリ。
Docker Desktop を入れずに WSL2 へ直接 Docker を導入している環境では、Windows 側からコンテナの状態を見る手段がありません。Dockl はその一点のために作られた、Windows 11 ネイティブの軽量 GUI です。WSL2 側には何もインストールしません。
Docker Desktop に依存しない — WSL2 内の Docker daemon と直接やり取りします。Docker Desktop がインストールされていても、していなくても動きます。
WSL2 側に何も置かない — 常駐サービスもバイナリも配置せず、ポートも開きません。アンインストールは Windows 側のアプリを消すだけで完結します。
Windows 11 になじむ外観 — Fluent 2 デザイン、Mica / Acrylic の背景効果、ライト/ダークのシステム連動。
ポーリングしない — docker events を購読しているため、コンテナの起動・停止は待たずに一覧へ反映されます。
| 領域 | 内容 |
|---|---|
| コンテナ | 一覧・詳細、起動/停止/再起動/一時停止/削除、Compose プロジェクト単位のグルーピングと up/down |
| ログ | ストリーミング表示、検索、折り返し切り替え |
| ターミナル | コンテナへのアタッチ(docker exec -it 相当)。タブやコンテナを切り替えてもセッションは維持されます |
| 統計 | CPU / メモリ / ブロック I/O / ネットワーク I/O / PID 数、スパークライン付き |
| イメージ・ボリューム・ネットワーク | 一覧・詳細・削除・prune |
| ストレージ | ディスク使用量の内訳とビルドキャッシュの prune |
| その他 | 日本語 / 英語 UI、タスクトレイ常駐、Windows ログイン時の自動起動、キーボード操作 |
- Windows 11
- WSL2(systemd の有効化は不要)
- WSL2 ディストロ内に Docker がインストール済みで、
dockerコマンドが使えること
Docker のインストール形態は問いません。rootless インストールでも、ソケットの場所を Docker CLI のコンテキストから解決するため、追加設定なしで動作します。
winget install Dockl.DocklReleases からインストーラ(Dockl_<version>_x64-setup.exe)をダウンロードして実行します。インストーラ不要の単体 exe(Dockl_<version>_x64.exe)も同じページにあります。
どちらもコード署名はされていないため、SmartScreen の警告が表示されることがあります。管理者権限は不要で、常に現在のユーザーにのみインストールされます。
npm install
npm run installerインストーラは src-tauri/target/release/bundle/nsis/ に生成されます。アップデート用の署名鍵(TAURI_SIGNING_PRIVATE_KEY)が無い環境では、インストーラの生成後、署名の段階でエラーになります。
初回起動時にセットアップ画面が開き、WSL2 ディストロを選んで接続するだけで使い始められます。
起動時に新しいバージョンを確認し、見つかるとサイドバーの「設定」の上に更新ボタンが表示されます。押すとダウンロードとインストールを行い、再起動します。更新は自動では行われません。
winget でインストールした場合は、winget upgrade Dockl.Dockl でも更新できます。
WSL2 の Docker とどう話すかを 3 つから選べます。設定画面でいつでも切り替えられます。
docker system dial-stdio を経由して Docker Engine API を使います。Dockl が起動した子プロセスだけが daemon に到達できるため、認証すべき経路がそもそも存在しません。ポートは開かず、設定も後片付けも不要です。
操作のたびに wsl.exe -- docker ... を実行します。最も単純で、WSL2 側に一切影響しません。プロセス起動のオーバーヘッドがあるぶん、上記より応答は劣ります。
dockerd を tcp://127.0.0.1:2375 で待ち受けさせて接続します。
注意: この方式は Engine API を無認証で公開します。Docker Engine API は
--privilegedなコンテナを起動できるため、同じマシン上の任意のプロセスから WSL2 側の root 権限を取られるのと同等のリスクがあります。既に他の用途で TCP を公開している場合を除き、dial-stdio を使ってください。
npm install # 依存の取得と Git hooks の設定
npm run app # 開発ビルドで起動Tauri v2(Rust)+ SvelteKit(Svelte 5)。UI は Fluent UI Web Components、ターミナルは xterm.js。フロントエンドは SPA として静的ビルドされます。
npm run check:all # svelte-check と cargo check を並列実行
npm run lint # Prettier と ESLint
npm run format # Prettier で整形コミット時には lefthook が変更ファイルだけを Prettier / ESLint / rustfmt に通します。型チェックは時間がかかるためフックには含めていません。
MIT
