Dockerでアプリケーションを動かすのであれば、コンテナやネットワークなどの構成をYAMLファイルにまとめられる、Docker Composeを使うのがお勧めです。しかし複数のアプリを動かしていると、Composeファイルも徐々に増えていきます。SSHでサーバーへログインし、各ディレクトリで
そこで今回は、Docker ComposeのスタックをWebブラウザから管理できるDockgeを紹介します。
Dockgeとは
DockgeはDocker Composeのスタックを、Webブラウザから管理するためのツールです。Docker Composeスタックの起動や停止、再起動、Dockerイメージの更新、compose.
開発しているのは第901回でも紹介した、死活監視ツールのUptime Kumaの作者でもあるLouis Lam氏です。そのため画面の雰囲気もUptime Kumaによく似ており、シンプルで分かりやすい点も共通しています。
Dockgeの大きな特徴は、あくまで
筆者はDocker Composeで動かしているアプリケーションについて、基本的には
なおPortainerのようなDocker管理ツールと似ていますが、DockgeはDocker Composeのスタック管理にかなり特化しています。単一コンテナを細かく管理したい場合などは、PortainerやDocker CLIの方が適しています。公式FAQでも、単一コンテナの管理についてはPortainerまたはDocker CLIの利用を案内しています。
Dockgeのインストールと起動
それではDockgeをインストールしてみましょう。Dockge自身もDocker Composeを使って起動しますので、Ubuntu 26.
$ sudo apt install -U -y docker.io docker-compose-v2
公式ドキュメントでは、Dockge本体を
$ sudo mkdir -p /opt/{dockge,stacks}
$ cd /opt/dockge
続いて公式のcompose.
$ sudo curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml -o compose.yaml
compose.
services:
dockge:
image: louislam/dockge:1
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を操作する必要があるため、
volumes:
- /home/user/compose:/home/user/compose
environment:
- DOCKGE_STACKS_DIR=/home/user/compose
準備ができたらDockgeを起動します。
$ sudo docker compose up -d
コンテナの状態も確認しておきましょう。
$ sudo docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS dockge-dockge-1 louislam/dockge:1 "/usr/bin/dumb-init …" dockge 18 seconds ago Up 17 seconds (healthy) 0.0.0.0:5001->5001/tcp, [::]:5001->5001/tcp
DockgeはデフォルトではTCPの5001番ポートで待ち受けます。Webブラウザを起動して、
初回アクセス時にはDockgeへログインするためのユーザーを作成します。ユーザー名とパスワードを設定してログインしてください。
なおDockgeはDockerソケットを経由してホスト上のDockerを操作できます。つまりDockgeの管理画面を第三者に操作されると、実質的にDockerホストそのものを操作される可能性があります。5001番ポートをインターネットへ直接公開するような運用は絶対に避けましょう。DockgeはLAN内だけで使用する、あるいはリバースプロキシやVPNなどを組み合わせて適切にアクセスを制限するといった運用をお勧めします。
Dockgeでスタックを作成する
それではDockgeから簡単なDocker Composeスタックを作ってみましょう。ログイン後、画面左上の
スタックの作成画面が開くので、まずスタック名を入力してください。ここでは例として
Dockgeにはcompose.
今回は画面右側の編集エリアに、以下の内容を入力してみましょう。
services:
nginx:
image: nginx:latest
restart: unless-stopped
ports:
- "8080:80"
networks: {}
入力できたら
すると作成したスタックが、ページ左側にリストアップされます。いま作成したnginxスタックをクリックしてから
起動時には、内部で実行されているDocker Composeの出力がリアルタイムに表示されます。また画面下部にある
スタックが起動したら、
また画面上のボタンからスタックの停止、再起動、更新なども実行できます。例えばDockerイメージを更新する場合、従来であればSSHでログインしてから、以下のコマンドを実行していました。
$ docker compose pull $ docker compose up -d
ですがこうした作業は、Dockgeの画面から実行できます。スタックの画面で
Docker Composeで家庭内のサービスをいくつも運用している場合、これだけでもかなり便利です。普段はcompose.
docker runコマンドからスタックを作成する
単一のコンテナを起動するだけであれば、手で
とはいえ
例えば以下は、メディアサーバーであるJellyfinを起動する
$ sudo docker run -d \ --name jellyfin \ --hostname jellyfin-media \ --restart unless-stopped \ -p 8096:8096/tcp \ -p 7359:7359/udp \ -e TZ=Asia/Tokyo \ -e JELLYFIN_PublishedServerUrl=http://192.168.1.254:8096 \ -e DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=0 \ -v /srv/jellyfin/config:/config \ -v /srv/jellyfin/cache:/cache \ --health-cmd='curl --fail http://localhost:8096/health || exit 1' \ --health-interval=30s \ --health-timeout=10s \ --health-retries=3 \ --health-start-period=60s \ jellyfin/jellyfin:latest
Dockgeのトップページにある
「Composeに変換」
Webコンソールを使う
DockgeにはWebブラウザから任意のコマンドを実行できるコンソールも用意されています。これによりGUIのラッパーだけでなく、必要であればコマンドを直接叩けるわけです。ただしコンソールは、デフォルトでは無効になっています。というのも、DockgeコンテナはホストのDockerデーモンに接続しているため、危険で破壊的な操作も可能なためです。
Webコンソールを有効にしたい場合は、Dockgeのcompose.
environment:
- DOCKGE_ENABLE_CONSOLE=true
これでウィンドウ右上の
ただし筆者が試したところ、Google Chromeでは問題なく動作したものの、Ubuntu標準のFirefoxからではコンソールに文字を入力できませんでした。Webコンソールを使う場合はブラウザとの相性に注意してください。
既存のスタックを登録する
すでにDocker Composeでサービスを運用している場合、こうした既存のcompose.
/opt/stacks/
├── nginx/
│ └── compose.yaml
├── nextcloud/
│ └── compose.yaml
└── vaultwarden/
└── compose.yaml
たとえば既存のhomepage用のcompose.
ただし既存環境を移行する際には、compose.
volumes:
- ./data:/var/lib/example
この
Dockgeを使うと、Docker Composeで管理している複数のスタックをWebブラウザから一覧し、起動や停止、ログの確認、compose.
既存のCompose環境を大きく変更せずに導入できますので、Docker Composeで複数のサービスを運用しているのであれば、ぜひ試してみてください。