tool
docker
tui

Docker初心者にオススメのゴリラ製ツール

こんにちわ

ゴリラです。

みなさんDockerは好きですか?

自分はDocker好きです。

Docker面白いですよね。

本記事は、ゴリラによるDockerユーザのためのゴリラ製Dockerツールを紹介します。

以前こちらの記事でも作ったことを紹介したのですが、

あれから少し進化してより便利になったので、再度紹介します。

これからDockerを始めよう、

もしくはすでに始めている方にとって便利なツールかなと思います。


どういうツール

直感的にDockerを操作できるTUIツールです。

image.png


できること

現時点でできることは以下になります。



  • image


    • search/pull/remove

    • save/import/load

    • inspect/filtering




  • container


    • create/remove

    • start/stop

    • export/commit

    • inspect/rename/filtering

    • attach




  • volume


    • create/remove/prune

    • inspect/filtering




  • network


    • remove

    • inspect/filtering



まだ実装できていないものがありますが、

基本的にDocker単体でできることは大体カバーしています。

次、構成について説明していきます。


構成


info panel

画面最上部に


  • DockerのAPIバージョン

  • Docker Engineのバージョン

  • DockerのEndpoint

  • docuiのバージョン

が表示されます。

image.png


task list

イメージ取得やコンテナ作成など、各操作が非同期で動きます。

どんな操作がどういう状態なのかを確認するパネルになります。

将来的には履歴から同じ操作を行えるようにする予定です。

image.png


image list

現在あるイメージが表示されます。

image.png


container list

現在あるコンテナが表示されます。

image.png


volume list

現在あるボリュームが表示されます。

image.png


network list

現在あるネットワークが表示されます。

image.png


navigate panel

各パネルで可能な操作とキーが表示されます。

image.png


ログ

docuiではエラーが起きた時に、エラーの内容がログに出力されます。

ログの場所は$HOME/docui.logにあります。

バグの解析などで使用することがメインなので、普段見る必要はありません。

time="2019-01-27T18:28:12+09:00" level=info msg="docui start" func=main.main file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/main.go:14"

time="2019-01-27T18:28:23+09:00" level=info msg="inspect network start" func="github.com/skanehira/docui/panel.(*NetworkList).Detail" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/networkPanel.go:245"
time="2019-01-27T18:28:23+09:00" level=info msg="inspect network finished" func="github.com/skanehira/docui/panel.(*NetworkList).Detail" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/networkPanel.go:275"
time="2019-01-27T18:30:26+09:00" level=info msg="remove network start" func="github.com/skanehira/docui/panel.(*NetworkList).RemoveNetwork.func1.1" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/networkPanel.go:288"
time="2019-01-27T18:30:26+09:00" level=info msg="remove network finished" func="github.com/skanehira/docui/panel.(*NetworkList).RemoveNetwork.func1.1" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/networkPanel.go:296"
time="2019-01-27T18:32:05+09:00" level=info msg="remove image start" func="github.com/skanehira/docui/panel.(*ImageList).RemoveImage.func1.1" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/imagePanel.go:682"
time="2019-01-27T18:32:05+09:00" level=info msg="remove image finished" func="github.com/skanehira/docui/panel.(*ImageList).RemoveImage.func1.1" file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/panel/imagePanel.go:691"
time="2019-01-27T18:46:23+09:00" level=info msg="docui finished" func=main.main file="/Users/skanehira/dev/go/src/github.com/skanehira/docui/main.go:19"


使い方

各パネルでできることをgif付きで紹介していきます。


イメージ系操作


イメージ検索

Ctrl + f で検索フォームが出ます。

検索したいイメージ名を入力してEnterを押すと検索結果が出てきます。

取得したいイメージを選択して、Enterを押すとイメージを取得してくれます。

image_search.gif


イメージ取得

p で取得したいイメージ名を入力して取得できます。

非同期で動くので、大きいなイメージを取得している間はコンテナを作ったりする事ができます。

image_pull.gif


イメージ削除

d でイメージを削除できます。

間違って削除してしまわないように確認ダイアログがでます。

image_remove.gif


イメージ保存

s でイメージを保存できます。

ファイルパスは絶対パスでなければいけないです。

ファイル名のみの場合はカレントディレクトリに出力されます。

image_save.gif


イメージインポート

i でイメージをインポートできます。

ファイルパスは絶対パスでなければいけないです。

ファイル名のみの場合はカレントディレクトリを見に行きます。

イメージインポートはファイルシステムだけインポートします。(個人的に使いみが思いつかない)

image_import.gif


イメージロード

Ctrl + l でイメージをロードできます。

ファイルパスは絶対パスでなければいけないです。

ファイル名のみの場合はカレントディレクトリを見に行きます。

image_load.gif


イメージの詳細

Enter でイメージの詳細を確認できます。

内部ではdocker inspectしているだけです。

image_inspect.gif


イメージのフィルタリング

f でイメージ一覧のフィルタリングができます。

イメージが多い時に真価が発揮します。

image_filtering.gif


コンテナ系操作


コンテナ作成

Ctrl + c でコンテナ作成フォームが出ます。

全オプションは対応していないのですが、主要のオプションのみ用意してあります。

オプションを入力してCreateボタンを押すとコンテナが作成されます。

container_create.gif


コンテナ削除

d でコンテナを削除できます。

間違って削除してしまわないように確認ダイアログがでます。

container_remove.gif


コンテナ開始

u でコンテナを起動します。

毎回docker start containerしなくて済むので楽ですね。

container_start.gif


コンテナ停止

s でコンテナを止めます。

毎回docker stop containerしなくて済むので楽ですね。

container_stop.gif


コンテナ名変更

r でコンテナ名を変更できます。

docker container rename old newしなくて済むので楽ですね。

container_rename.gif


コンテナのアタッチ

Ctrl + c でコマンド(bashやsh)を入力してコンテナへアタッチできます。

コンテナが起動していないときはダイアログが出ます。

内部でdocker exec -it container cmdしていますので、抜けてもコンテナが落ちることはないです。

個人的に気にっている機能の一つです。

container_attach.gif


コンテナの詳細

Enter でコンテナの詳細を確認できます。

内部ではdocker inspectしているだけです。

container_inspect.gif


コンテナのフィルタリング

f でコンテナ一覧のフィルタリングができます。

container_filtering.gif


ボリューム系操作


ボリューム作成

c でオプションを入力でき、ボリュームを作成できます。

volume_create.gif


ボリューム削除

d でボリュームを削除できます。

間違って削除してしまわないように確認ダイアログがでます。

volume_remove.gif


ボリュームの詳細

Enter でボリュームの詳細を確認できます。

volume_inspect.gif


ボリュームのフィルタリング

f でボリューム一覧をフィルタリングできます。

volume_filtering.gif


ネットワーク系操作


ネットワークの削除

d でネットワークを削除できます。

間違って削除してしまわないように確認ダイアログがでます。

network_remove.gif


ネットワークの詳細

Enter でネットワークの詳細を確認できます。

内部ではdocker inspectしているだけです。

network_filtering.gif


ネットワークのフィルタリング

f でネットワーク一覧をフィルタリングできます。

network_filtering.gif


今後について

まだまだ実装したい機能があるので、

今後もゆっくりではあるんですが、更に使いやすくなるよう進化していきます。

issueとPR大歓迎なので、お待ちしています。

ちなみに、docuiとは関係ないのですが、

将来的にはdocker-composek8sも同じようなツールも作っていく予定です。

では良いDockerライフを〜