mcpField
L
Lazydocker

Lazydocker

公式おすすめ
github.comクラウド・DevOps53.2klazydocker27 週間前に更新
リポジトリ公式サイト

Lazydocker について

Lazydocker は、Docker コンテナ、サービス、イメージ、ログを管理するためのインタラクティブなターミナルインターフェイスです。開発者はコンテナの状態を素早く確認したり、ライブログを表示したり、リソース統計を監視したりできます。

主な機能

  1. 01Docker コンテナとサービスの状態を閲覧・管理する
  2. 02コンテナのリアルタイムログを表示する
  3. 03コンテナの CPU とメモリ使用率を監視する

活用シーン

  1. 01開発中のコンテナをデバッグ・監視する
  2. 02本番環境のコンテナの問題をトラブルシューティングする
  3. 03ローカル Docker インスタンスの複数サービスを管理する

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install lazydocker

インストール後にlazydocker --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
lazydocker

詳細

README の画像

docker と docker-compose の両方に対応したシンプルなターミナル UI で、Go と gocui ライブラリで書かれています。

CI Go Report Card GolangCI GoDoc GitHub repo size GitHub Releases GitHub tag homebrew

Gif

デモ

スポンサー

このプロジェクトのメンテナンスは、すべてのコントリビューターとスポンサーによって支えられています。このプロジェクトをスポンサードし、下にあなたのアバターや会社のロゴを表示したい場合はこちらをクリックしてください。💙

Mark LussierDean HerbertPeter BjorklundReilly WoodOliver GüntherPawan DhananjayBartłomiej DachDavid KarlssonCarsten GehlingCEUKAkos PutzXeteraHolden LucasChau TranmatejciktheAverageDev (Luca Tumedei)Ivan ZaitsevNicholas CloudLightQuantumGabriel SaillardAliaksandr StelmachonakBurgy BenjaminJoe KlemmerTobias LütkeBen BeaumontREADME の画像HollyJames SantucciJeff ForcierREADME の画像Maciej T. NowakFarzad MajidfayyazYuryREADME の画像Andreas KurthBraden SteffaniakJordan GillardSebastianGeorge SpanosFrantisek StankoAndy SlezakMartin KockIllarion KoperskiREADME の画像Jesse AlamaCodacyBrettJan HeijmansKevin Nowaldsem pruijsOmar LuqEthan LiREADME の画像Brian MacAskillMaxinbrJan ZenknerVictor AremuREADME の画像Igor RamazanovElliott Maguiren8n - Workflow Automationkaleb allmonJosh ThomasJJFrederick MorlockDarren CraineMaximilian LangenfeldNurzhanDavis BulsGrec MarcsainuMarc Güell SegarraREADME の画像Chris OlsenVladimir PopovNeil LambertShaun GarwoodDavid Heinemeier HanssonWayan jimmy

エレベーターピッチ

少し愚痴を言わせてください: 何かが動かない?おそらくサービスが落ちています。docker-compose ps。はい、まだバグが残っているあのマイクロサービスですね。問題ありません、再起動するだけです: docker-compose restart。よし、もう一度試してみましょう。あれ、まだ問題が残っていますね。うーん。docker-compose ps。なるほど、サービスは起動直後にすぐ停止してしまったのでしょう。ログストリームを読んでいればすぐにわかったはずですが、他のサービスからのノイズが大量にあります。docker compose logs --follow myserviceでそのサービスだけのログを取得することもできますが、これはサービスが停止するたびに終了してしまうので、サービスを再起動するたびにこのコマンドを実行しなければなりません。代わりにdocker-compose up myserviceを実行して、そのターミナルウィンドウでサービスが落ちていればまたupすることもできますが、そうするとログにもう興味がなくなった後でも、1つのサービスがターミナルウィンドウを占有し続けることになります。ターミナルのスペースを解放したいときはctrl+P,Qをすればいいはずですが…待って、なぜかこれが動作しません。代わりにctrl+Cを使うべきでしょうか?これがフォアグラウンドプロセスを閉じるのか、それとも実際のサービスを終了させるのか思い出せません。

なんてこった!

dockerコマンドを覚えるのは大変です。エイリアスを覚えるのは少しだけ楽です。複数のターミナルウィンドウにまたがってコンテナを把握するのはほぼ不可能です。必要な情報がすべて1つのターミナルウィンドウにあり、よく使うコマンドがすべてキー1つで実行できたら(さらにカスタムコマンドも追加できたら)どうでしょうか。Lazydockerの目標は、その夢を実現することです。

要件

  • Docker >= 29.0.0 (API >= 1.24)
  • Docker-Compose >= 1.23.2 (オプション)

インストール

Homebrew

通常、lazydockerのformulaはHomebrew coreにありますが、頻繁に更新されるものを取得するために、私たちのformulaをtapすることをおすすめします。Linuxでも動作します。

Tap:

brew install jesseduffield/lazydocker/lazydocker

Core:

brew install lazydocker
Scoop (Windows)

scoopを使ってlazydockerをインストールできます:

scoop install lazydocker
Chocolatey (Windows)

Chocolateyを使ってlazydockerをインストールできます:

choco install lazydocker
asdf-vm

asdf-vmを使ってasdf-lazydocker プラグインをインストールできます:

セットアップ (一度だけ)
asdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.git
インストール / アップグレード
asdf list all lazydocker
asdf install lazydocker latest
asdf global lazydocker latest
バイナリリリース (Linux/OSX/Windows)

リリースページからバイナリリリースを手動でダウンロードできます。

自動インストール / アップデート、bashにパイプするものは常に確認することを忘れないでください:

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

このスクリプトはダウンロードしたバイナリをデフォルトで$HOME/.local/binディレクトリにインストールしますが、DIR環境変数を設定することで変更できます。

Go

必要なGoバージョン >= 1.19

go install github.com/jesseduffield/lazydocker@latest

必要なGoバージョン >= 1.8、<= 1.17

go get github.com/jesseduffield/lazydocker
Arch Linux AUR

AURを使ってlazydockerをインストールできます:

yay -S lazydocker
Docker

Docker Pulls Docker Stars Docker Automated

  1. ARM デバイスをお使いの場合はこちらをクリックしてください

    • ARM 32 ビット v6 アーキテクチャの場合

      docker build -t lazyteam/lazydocker \
      --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \
      --build-arg GOARCH=arm \
      --build-arg GOARM=6 \
      https://github.com/jesseduffield/lazydocker.git
      
    • ARM 32 ビット v7 アーキテクチャの場合

      docker build -t lazyteam/lazydocker \
      --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \
      --build-arg GOARCH=arm \
      --build-arg GOARM=7 \
      https://github.com/jesseduffield/lazydocker.git
      
    • ARM 64 ビット v8 アーキテクチャの場合

      docker build -t lazyteam/lazydocker \
      --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \
      --build-arg GOARCH=arm64 \
      https://github.com/jesseduffield/lazydocker.git
      

  2. コンテナを実行します

    docker run --rm -it -v \
    /var/run/docker.sock:/var/run/docker.sock \
    -v /yourpath:/.config/jesseduffield/lazydocker \
    lazyteam/lazydocker
    
    • /yourpath は、lazydocker の設定を保存するために実際に作成したパスに変更することを忘れないでください

    • この docker-compose.yml も使用できます

    • 次のようにエイリアスを作成するとよいでしょう:

      echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/config:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc
      

開発用には、次のコマンドでイメージをビルドできます:

git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
docker build -t lazyteam/lazydocker \
    --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
    --build-arg VCS_REF=`git rev-parse --short HEAD` \
    --build-arg VERSION=`git describe --abbrev=0 --tag` \
    .

Docker にバンドルされているバイナリとの互換性の問題が発生した場合は、ビルド引数 --build-arg DOCKER_VERSION="v$(docker -v | cut -d" " -f3 | rev | cut -c 2- | rev)" を指定してイメージを再ビルドしてみてください。これにより、バンドルされる docker バイナリがホストの docker バイナリのバージョンと一致します。

手動

Go をインストールする必要があります

git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
go install

go run main.go を使えば、コンパイルと実行を一度に行うこともできます (間違いなくダジャレです)

使用方法

ターミナルで lazydocker を呼び出してください。私はこれをよく使うので、次のようにエイリアスを作成しています:

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

(.zshrc は、お使いの任意の rc ファイルに置き換えてください)

  • 基本的なビデオチュートリアルはこちらです。
  • キーバインドの一覧は こちらです。

便利な機能

すべてがキー 1 回 (またはクリック 1 回!) で操作できます (マウスサポートも万全です):

  • docker または docker-compose のコンテナ環境の状態を一目で確認できます
  • コンテナ/サービスのログを表示できます
  • コンテナのメトリクスを ASCII グラフで表示できるので、開発者らしく振る舞うだけでなく、本当に開発者になれます
  • それらのグラフをカスタマイズして、ほぼあらゆるメトリクスを測定できます
  • コンテナ/サービスにアタッチできます
  • コンテナ/サービスを再起動/削除/再ビルドできます
  • 特定のイメージの祖先レイヤーを表示できます
  • ディスク容量を圧迫しているコンテナ、イメージ、ボリュームを整理できます

コントリビュート

まだやるべきことはたくさんあります! コントリビュートガイドをご覧ください。 リポジトリのここで議論するよりも適さない内容についてコントリビューター同士で話し合いたい場合は、Discord チャンネルにご参加ください

README の画像

寄付

lazydocker の開発を支援したい場合は、私をスポンサーすることをご検討ください (GitHub は 12 か月間、すべての寄付を 1 ドルにつき 1 ドルでマッチングします)

ソーシャル

私(Jesse)が開発に関して何をしているか知りたい場合は、twitter でフォローするか、twitch でプログラミングしている様子をご覧ください。

FAQ

設定を編集するにはどうすればよいですか?

lazydocker を開き、左上の「project」パネルをクリックして、「o」を押します(エディタが vim の場合は「e」)。詳細は設定ドキュメントをご覧ください。

メインパネルでテキストを折り返すにはどうすればよいですか?

将来的にはこれをデフォルトにしたいと考えていますが、現時点では折り返しに関していくつかの CPU 問題が発生します。折り返しを有効にしたい場合は、gui.wrapMainPanel: true を使用してください。

テキストを選択するにはどうすればよいですか?

マウスイベントをサポートしているため、何かをクリックするのではなくテキストを選択しようとしていることを示すために、マウスをドラッグしながら option キーを押し続ける必要があります。あるいは、gui.ignoreMouseEvents 設定値でマウスイベントを無効にすることもできます。

Mac ユーザーの方へ: その他の選択肢についてはIssue #190をご覧ください。

コンテナのログが表示されないのはなぜですか?

デフォルトでは、マシンに過度な負荷をかけないように、過去 1 時間のログのみを表示します。lazydocker を初めて起動したときにログが表示されないのは、これが理由かもしれません。これは設定の commandTemplates で上書きできます。

lazydocker を Docker コンテナ内で実行している場合、ログや CPU 使用率が表示されないという既知のバグがあります。

代替ツール

  • docui - Skanehira が docker ターミナル UI の作成で先を越してしまったので、ぜひこちらのリポジトリもチェックしてみてください!とはいえ、この 2 つのリポジトリは共存できると思います。lazydocker は既存のコンテナやサービスの管理により重点を置いており、docui はそれらの作成と設定により重点を置いています。
  • Portainer - Portainer は同じ問題を解決しようとしていますが、ターミナルではなくブラウザ経由でアクセスします。また、docker swarm もサポートしています。
  • Docker を操作するための類似ツールについては、Awesome Docker リストをご覧ください。

コメント