docker psはもう古い?LazyDockerこそがエンジニアの最適解
エンジニアの皆さんなら、docker psを打ち込み、コンテナIDを探すために画面をスクロールし続ける苦労をよくご知でしょう。その後、ログを確認したり設定をインスペクトしたりするために、さらにコピー&ペーストを繰り返す…。コンテナが1つや2つの時はまだいいですが、プロジェクトがスケールし、10〜15個のマイクロサービスが同時に動くようになると、この操作は非常に煩わしくなります。
以前は、直感的なWeb UIを持つPortainerを使っていました。しかし、ステータスをサッと確認したいだけなのに、わざわざブラウザを開いて何度かクリックしなければならないのがネックでした。私のようにターミナルにこもって作業したい人間にとって、Portainerは少し重厚すぎると感じることがあります。そこで使い始めたのがLazyDockerです。これはGoで書かれたターミナルUI(TUI)ツールで、Dockerの全操作をキーボードだけで完結させることができます。
LazyDockerは従来のDocker CLIを置き換えるものではありません。操作を最適化するための「スマートな外装」のようなものです。長いコマンドを打ち込む代わりに、矢印キーで移動するだけ。このアプローチにより、日々の基本的な管理タスクで15〜20分ほどの時間を節約できます。
LazyDockerのクイックインストール
LazyDockerのバイナリファイルは10〜15MBと非常に軽量で、一瞬でインストールが完了します:
1. スクリプトによるインストール(Linux/macOS用)
ターミナルに以下のコマンドを貼り付けるだけです:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
2. Homebrewを使用する(Macユーザー向け)
brew install jesseduffield/lazydocker/lazydocker
3. Dockerで直接実行する(環境を汚したくない場合)
OSに直接インストールしたくない場合は、コンテナ内でLazyDockerを実行することも可能です:
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker
インストール後、lazydockerと入力するとコントロール画面が起動します。
設定とショートカットキーのマスター
LazyDockerのインターフェースは、Project、Containers、Images、Volumesの4つの管理エリアに分かれています。詳細情報はすべて右側のパネルに表示されます。さらに詳細なイメージ構造を知りたい場合は、Diveでイメージを詳細に分析する方法も併用すると良いでしょう。
主要なショートカットキー
作業効率を3倍にするために、以下の基本的なショートカットキーを覚えておきましょう:
up/down: コンテナやイメージ間の移動。enter: 右側のパネルにフォーカス(ログのスクロールなど)。esc: 左側のリストパネルに戻る。x: アクションメニューを表示(停止、再起動、削除など)。p/s/r: コンテナのポーズ(Pause)、停止(Stop)、再起動(Restart)に対応。E: コンテナのシェルに直接アクセス(docker exec -itコマンドの代わり)。
config.ymlによるカスタマイズ
LazyDockerは ~/.config/lazydocker/config.yml で詳細なカスタマイズが可能です。私はよく、ハングアップしたコンテナを素早く掃除するためにカスタムコマンドを追加しています。また、UIの色を変更したり、ログの時間形式を見やすく調整したりすることもできます。
検査とモニタリング:リアルタイム監視
LazyDockerの最大の魅力は、コマンドを何度も打つことなく、システムを視覚的に監視できる点にあります。
統計情報(CPU/RAM)の監視
docker statsの味気ない表を眺める代わりに、Statsタブに切り替えるだけです。ここではASCIIチャートがリアルタイムで更新されます。どのコンテナがRAMやCPUを80〜90%も消費しているか即座に把握でき、Dockerリソース制限を適用するなど迅速な対応が可能になります。
プロフェッショナルなログデバッグ
Logsタブはスクロールや検索機能が非常に充実しています。ただ、200〜300行も続く巨大なJSONログが流れてくると、ターミナル上で読むのは目が疲れます。効率的な管理のためには、あらかじめDockerログ管理の設定を見直しておくことも重要です。
Tips: JSON形式のAPIレスポンスをデバッグする際、私はよく内容をコピーして toolcraft.app/ja/tools/developer/json-formatter に貼り付けています。このツールを使えば設定をきれいに整形でき、複雑な grep や jq コマンドで格闘するよりもはるかに高速です。
システムクリーニング(Pruning)
数週間作業していると、「dangling」イメージが5〜10GBもディスク容量を圧迫することがあります。LazyDockerなら、Imagesタブを選んで x を押し、Pruneを選択するだけです。長い docker system prune コマンドを覚えておかなくても、Dockerのディスク容量不足を解消するようにシステムが自動的にゴミをスキャンして削除してくれます。
Docker Composeの管理
Docker Composeを使用しているプロジェクトでは、Projectタブがサービスを非常にきれいにグループ化してくれます。煩わしい docker-compose.yml ファイルの指定をすることなく、わずか2回のキー入力でサービス群全体を再起動でき、ゼロダウンタイムのデプロイ環境などでも重宝します。
まとめ
LazyDockerは決して複雑なツールではありませんが、Dockerの作業体験を劇的に変えてくれます。繰り返しのCLIコマンドから解放され、本来の業務であるコーディングに集中できるようになります。軽量かつプロフェッショナルなコンテナ管理ツールを探しているなら、今すぐLazyDockerを試してみてください。一度使えば、もう docker ps を打ち込む日々には戻りたくなくなるはずです!

