TUIのDockerクライアントlazydockerを使う

はじめに

lazydockerは、DockerとDocker ComposeのためのシンプルなターミナルUI(TUI)である。
lazygitと同じ作者によって開発されており、Go言語で書かれている。

docker psdocker-compose psなどのコマンドを何度も実行してコンテナやイメージの状態を確認するのは面倒であることを常々感じていたのだが、lazydockerを使うことでこれらの操作が楽になりそうだと考え、導入してみた。

というわけで、今回はlazydockerのインストール方法と基本的な使い方についてまとめておく。

環境

Windows 11 Pro
WSL2 Ubuntu 24.04 LTS
lazydocker 0.24.1
Docker version 27.4.1, build b9d17ea
Docker Compose version v2.24.5

動作要件

動作要件は以下となる。

Docker >= **1.13** (API >= **1.25**)
Docker-Compose >= **1.23.2** (オプション)

インストール

Ubuntu環境では以下の方法でインストールする。

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
ログ
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   884  100   884    0     0   4110      0 --:--:-- --:--:-- --:--:--  4111
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4804k  100 4804k    0     0  13.8M      0 --:--:-- --:--:-- --:--:-- 13.8M
lazydocker

スクリプトはデフォルトで $HOME/.local/bin にバイナリをインストールするが、DIR 環境変数で変更可能である。

※ 他のOSやパッケージマネージャーでのインストール方法はlazydocker#Installationを参照。

nixを使用

一時的な環境で試したい場合は以下

nix-shell -p lazydocker

恒久的にインストールする場合は以下

nix-env -i lazydocker

使い方

起動

以下のコマンドを実行するだけである。

lazydocker
lazydocker-01

頻繁に使用する場合は、エイリアスを設定すると便利である。

echo "alias lzd='lazydocker'" >> ~/.zshrc

Dockerデーモンが起動していない場合は、エラーが表示されるので事前に起動しておく必要がある。

基本操作

画面はいくつかのパネルに分かれており、 キーや h l キーでパネル間を移動できる。
また、マウスによる操作もサポートされている。

主なパネル構成は以下の通りである。

  • [1] Project (プロジェクト情報)
  • [2] Containers (コンテナ一覧)
  • [3] Services (Docker Composeサービス一覧)
  • [4] Images (イメージ一覧)
  • [5] Volumes (ボリューム一覧)
  • [6] Networks (ネットワーク一覧)

よく使うキー操作の例は以下

グローバルキー

キー操作
[前のタブへ移動
]次のタブへ移動
1-6各パネルへ直接移動(1:Project, 2:Services, 3:Containers, etc.)
+ / -画面モードの切り替え(通常/半分/フルスクリーン)
?ヘルプ表示
qlazydockerの終了

コンテナ操作

キー操作
d削除
s停止
r再起動
p一時停止
aアタッチ
mログを表示
Eシェルを実行(exec)
e停止中のコンテナを表示/非表示
wブラウザで開く(最初のポートがhttpの場合)
/リストをフィルタ

サービス操作(Docker Compose):

キー操作
uサービスを起動
dコンテナを削除
s停止
r再起動
Uプロジェクトを起動(docker compose up)
Dプロジェクトを停止(docker compose down)
R再起動オプションを表示

イメージ/ボリューム操作:

キー操作
d削除
cカスタムコマンドを実行
b一括操作コマンドを表示

画面下部に操作ガイドが表示されるため、キーバインドを全て暗記していなくても使い始めることができる。

機能について

リソース使用状況の可視化

コンテナのCPUやメモリ使用状況がASCIIグラフでリアルタイムに表示される。
これにより、リソースを多く消費しているコンテナを一目で特定できる。
また、グラフは設定でカスタマイズ可能で、ほぼすべてのメトリックを測定できる。

ログの表示

複数のコンテナやサービスのログを統合して確認でき、特定のコンテナにフォーカスすることも可能である。
デフォルトでは過去1時間のログのみを表示するため、マシンへの負荷を抑えている。
これは設定の commandTemplates で上書き可能である。

Docker Composeのサポート

Docker Composeで管理されているサービスもグループ化して表示され、プロジェクト単位でまとめて操作することができる。
docker-compose updocker-compose downなどの操作がワンキーで実行可能である。

イメージレイヤーの確認

選択したイメージの祖先レイヤーを確認できる。
これにより、イメージの構成を理解しやすくなる。

不要なリソースの削除

使用されていないコンテナ、イメージ、ボリュームを簡単に確認し、一括削除することができる。
これにより、ディスク容量の管理が容易になる。

カスタムコマンド

設定ファイルでカスタムコマンドを定義することができる。
例えば、特定のコンテナでbashを起動するコマンドなどを登録しておくと、頻繁に使うコマンドを素早く実行できる。

設定

設定ファイルの編集

lazydockerを起動後、左上のProjectパネルで以下のキーを押す

  • o: 設定ファイルを開く
  • e: 設定ファイルを編集(エディタがvimの場合)

設定ファイルの詳細についてはConfig Docsを参照。

テキストの折り返し

メインパネルでテキストを折り返したい場合は、設定でgui.wrapMainPanel: trueを設定する。

参考

おわりに

lazydockerを使うことで、Docker操作がTUIで快適に行えるようになる。
特に、複数のコンテナやイメージを管理する際に、視覚的に確認しながら操作できる点が便利そうである。
docker psdocker imagesを何度も実行する必要がなくなり、作業効率が大幅に向上する。

また、リソース使用状況のリアルタイム可視化、ログの表示、Docker Composeのサポートなど、運用時に便利な機能が揃っている。
カスタムコマンドを定義することで、自分のワークフローに合わせた操作も可能となっているようだ。

lazygitと同様に、画面下部にキーバインドガイドが表示されるため、初めて使う場合でもすぐに操作を始められる。
TUI操作が最近自分の中でアツいので、このあたりのTUIツールは積極的に試していきたいと思う。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。