Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

こんにちわ
ゴリラです。

みなさん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ライフを〜

gorilla0513
https://twitter.com/gorilla0513
https://github.com/skanehira
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした