Docker ComposeをWeb UIで管理する[Dockge]
はじめに
今回は、複数のDocker Composeを簡単に管理できるツール、Dockgeを紹介します。
現代のソフトウェア開発では、コンテナ技術を使ったアプリケーションのデプロイと管理が一般的です。しかし、複数のアプリケーションを自宅などでセルフホストする場合、Docker Composeの管理が煩雑になることも少なくありません。そこで登場するのがDockgeです。Dockgeは、Docker Composeの管理をGUI上で直感的に行える便利なツールです。
Dockgeとは
Dockgeは、セルフホスト型のDocker Compose管理ツールです。Web UIからDocker Composeの起動、停止、更新などを簡単に行うことができます。Dockgeは、モニタリングツール「Uptime Kuma」の作者であるLouis Lam氏によって開発されており、そのため操作感もUptime Kumaと似ています。類似するツールにportainer.ioがありますが、DockgeはDocker Composeの管理に特化しており、よりシンプルで直感的に使えるのが特徴です。

DockgeのUI - GitHubリポジトリより
なお「Dockge」の読み方についてはFAQに以下のような記述があります。
"Dockge" is a coinage word which is created by myself. I originally hoped it sounds like
Dodge, but apparently many people called itDockage, it is also acceptable.
(以下訳文)
"Dockge"は私の造語です。Dodgeのような響きを想定していましたが、どうやら多くの人がDockageと発音しているようなのでこれも許容範囲です。
主要な機能
compose.yamlの管理
Docker Composeの新規作成・編集・停止・再起動・削除・イメージの更新を簡単な操作で行えます。

homepageのイメージを更新する様子
Webターミナル
ブラウザ上から直接コンテナ内でコマンドを実行できます。

Label Studioのコンテナ内に入りlsする様子
docker runコマンドをcompose.yamlに変換
docker run ...コマンドを入力すると、それを元に自動でcompose.yamlファイルを生成します。
使用するプロダクトにcompose.yamlが提供されていないような場合でも安心ですね。

MySQLを起動するコマンドをcompose.yamlに変換する様子
変換の結果
docker run --name mysql -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} -d mysql:9.0.1
上記コマンドが以下のように変換されました。
version: "3.3"
services:
mysql:
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
image: mysql:9.0.1
networks: {}
ファイルベースでの管理
Dockgeはスタック志向を謳っており、管理下のDocker Composeをすべて以下のようなファイルベースで管理します。アプリケーションの設定ファイルをGitで管理している場合などでもDockgeは利用できます。
# tree -L 1
.
├── cloudflared
├── homepage
├── label-studio
├── swarmui
├── upsnap
└── uptime-kuma

管理下のスタック
インストール方法
動作環境
以下が必要です。
- Docker 20+ またはPodman
- podman-docker(Podmanのみ)
- CPUアーキテクチャ:armv7, arm64, amd64
以下はサポートされていません。
- Debian/RaspbianのBuster以下のバージョン
- Windows
手順
ディレクトリ作成
DockgeとDockgeが管理するComposeの置き場を作成します。ここではDockgeのcompose.yamlを/opt/dockgeに、管理対象(以下スタック)を/opt/stacksに配置する例を示しています。スタックのパスを変更する場合は、後述するcompose.yamlの記述も変更してください。
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
compose.yamlを作成し起動
/opt/dockgeに以下のようなcompose.yamlを作成します。
公式サイト上にジェネレータも用意されています。
services:
dockge:
image: louislam/dockge:1
container_name: dockge
restart: unless-stopped
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
作成できたらDockgeを起動します。
docker compose up -d
Dockgeを実行しているマシンの指定したポート(例では5001番ポート)にアクセスしてください。
使い方
作成
左上のComposeをクリックし編集画面を開きます。
以下の「一般」のセクションではスタック名を入力します。スタック名はこのComposeを表す一意な名前です。

「Dockgeエージェント」は複数マシン上のDocker Composeを扱う際に使用します。
次に「コンテナ」のセクションでコンテナを設定します。

右側でcompose.yamlや.envの編集をしたり、内部・外部ネットワークを設定します。

インポート
スタックのディレクトリ(上記インストール例では/opt/stacks)に任意のディレクトリ(小文字)を作成し、その下にcompose.yamlを配置します。
これによってDockgeで管理できるようになりましたが、表示されない場合は右上のアイコンをクリックして「スタックフォルダをスキャン」をクリックしてください。

注意
現状Difyのようなcompose.yaml(またはdocker-compose.yaml)が直下にない場合は管理できないようです。
さいごに
Docker ComposeをGUIで管理できるDockgeを紹介しました。Dockgeを使えば、Web UIを通じて直感的にコンテナを管理できるだけでなく、docker runコマンドをcompose.yamlに変換したり、ファイルベースで設定や環境を柔軟に操作可能です。
自宅サーバなどでDocker Composeの管理に課題を感じている方にはぜひ試していただきたいです。
参考
Discussion