MENU

lazydockerとは|2019年に登場したDocker操作向けTUI

lazydocker アイキャッチ
lazydocker

lazydockerはJesse Duffield氏がlazygitの成功を受けて2019年6月に公開した、Docker・Docker Compose専用のターミナルUIである。Go言語とgocuiを基盤にする点はlazygitと共通で、稼働中コンテナの一覧、ログの追尾、CPU・メモリ使用量のグラフ、コンテナ内シェル接続といった日常操作をキー操作だけで行える。docker psdocker logs -fを何度も叩く手間を省ける点が、ローカル開発でDocker Composeを多用するチームに強く刺さった。

目次

この記事の目次

  1. なぜ`docker`コマンドの上にTUIが要るのか
  2. 画面の構成要素と典型的なフロー
  3. カスタムコマンドによる操作の拡張
  4. 導入と日常運用へのフィット
  5. まとめ

なぜ`docker`コマンドの上にTUIが要るのか

なぜ`docker`コマンドの上にTUIが要るのか

Docker CLIは個別操作には十分強力だが、複数コンテナの状態確認やログ調査を同時並行で行う場面ではdocker psdocker logsdocker statsの往復が頻発する。lazydocker以前はctopという軽量ツールが似た領域をカバーしていたが、Composeとの統合や対話操作の幅では制約があった。lazydockerは2019年6月の初版公開時点でCompose・サービス単位の操作を意識した画面構成を備えており、開発時の繰り返し作業を一気に短縮した。

実装としてはDocker Engine APIをGo SDK経由で呼び出し、画面更新を一定間隔でポーリングする。Docker DesktopやPodmanのDocker互換ソケットも対象にできるため、macOSでのColima利用やWindowsのWSL2環境でもそのまま動作する。バックエンドの差を吸収する設計のおかげで、複数の開発環境を行き来する開発者にも導入障壁が低い。

画面の構成要素と典型的なフロー

画面の構成要素と典型的なフロー

起動するとターミナルが「Project」「Containers」「Images」「Volumes」「Networks」「Services」の各パネルに分かれ、左側の選択に応じて右側に詳細パネル(ログ・統計・設定など)が更新される。コンテナを選択してsで停止、rで再起動、dで削除、Eでexec実行という基本動作はキー一発で済む。ログタブは色付きでfキーによる追尾、/での検索もサポートされる。

Statsタブはdocker statsをTUI化したもので、CPU・メモリ・ネットワークI/Oが折れ線グラフ風に表示される。リソースが偏ったコンテナの特定が一目で済むため、リーク調査やパフォーマンスチューニングの初手として有用だ。Docker Composeのプロジェクト単位でグルーピングされる点もlazydocker独自で、docker-compose.ymlを多数管理する開発で威力を発揮する。

カスタムコマンドによる操作の拡張

カスタムコマンドによる操作の拡張

lazygit同様、lazydockerも~/.config/lazydocker/config.ymlcustomCommandsで任意のコマンドを登録できる。たとえばmake deploy-stagingをプロジェクトパネルから一発で呼ぶ、docker compose exec app rails consoleをコンテナパネルから直接起動するといった運用が可能だ。コマンドにはGoのテンプレート構文で選択中のコンテナ名やイメージIDを埋め込めるため、汎用性が高い。

対抗となるGUIのDocker DesktopダッシュボードやPodman Desktopと比較すると、TUIならではの軽量さとSSH先サーバーでの利用性が際立つ。本番に近いステージング環境にSSH接続し、lazydockerでログを追いながら問題コンテナをすぐ再起動するといった即応的な運用が成立する。リモートワーカーが回線品質に左右されにくいのも、TUIならではの利点として無視できない。

導入と日常運用へのフィット

導入と日常運用へのフィット

導入はbrew install lazydocker(macOS)、scoop install lazydocker(Windows)、apt install lazydocker(Debian系)など各種パッケージマネージャから一発で行える。Goの単一バイナリでサイズは20MB程度、依存もDockerソケットへのアクセス権限のみだ。初回起動時に設定ファイルが~/.config/lazydocker/に生成され、ログレベルや色テーマ、表示パネルの並びはここで好みに調整できる。

日常運用ではターミナルマルチプレクサtmux/Zellijの常駐ペインに置いて開発のお供にする使い方が一般的だ。エディタ側でコードを書きながら、隣のペインでコンテナの状態を見て即座にrestartする流れが完成する。lazygitと並べて使えば、Gitとコンテナという2つのインフラ操作がほぼTUIに集約され、ブラウザ・GUIへの切替頻度が大幅に減る。

まとめ

lazydockerは2019年6月にlazygitの兄弟プロジェクトとして公開され、Docker CLI単体では繰り返しになる操作をキー数回に圧縮した。Composeプロジェクト単位の表示やリアルタイム統計、カスタムコマンドの組み合わせで、ローカル開発から本番調査までを横断的にカバーする実用的なTUIとして地位を確立している。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次