ども、ゴリラです。
docker-composeユーザのためのVimプラグインを作ったのでそのプラグインの紹介です。
このプラグインを使えば、vimを終了することなくdocker-composeを使用することができます。とても便利。
ぜひ入れて試してみて下さい。
はじめに
以前、docker.vimというVimプラグインを作って、Docker Meetup Tokyoやゴリラ.vimで発表してきました。

その中でdocker-compose版もほしいという声を頂いたので、
2日くらいでパーッと作ってみました。
どんな感じ?
できること
docker-composeをラップしたコマンドDockerCompose {args}を用意したので、基本docker-composeでできることはすべてできます。
Twitter上で業務でdocker-composeを使用している方たちからヒアリングしたよく使う機能は実装しました。それが次になります。
引数は対応していないのですが、サクッと使うときは便利です。
| vim command | docker-compose command |
|---|---|
| :DockerCompose {args} | docker-compose {args} |
| :DockerComposeList {file} | docker-compose -f {file} ps |
| :DockerComposeLogs {file} | docker-compose -f {file} logs |
| :DockerComposeUp {file} | docker-compose -f {file} up |
| :DockerComposeDown {file} | docker-compose -f {file} down |
| :DockerComposeDownAll {file} | docker-compose -f {file} down --rmi all -v |
| :DockerComposeStart {file} | docker-compose -f {file} start |
| :DockerComposeStop {file} | docker-compose -f {file} stop |
| :DockerComposeRestart {file} | docker-compose -f {file} restart |
| :DockerComposeBuild {file} | docker-compose -f {file} build |
| :DockerComposePull {file} | docker-compose -f {file} pull |
| :DockerComposeConfig {file} | docker-compose -f {file} config |
一点注意ですが、DockerComposeDownAllはコンテナ、イメージ、ネットワークに加え、ボリュームも削除します。
完全にリソースが不要になったときに使用すると便利です。
ちなみにDockerComposeList は専用のインターフェイスを用意していて、実行すると次にようになります。
このウィンドウでの操作は次にようになります。
| key | operation |
|---|---|
| u | start contaienr |
| d | stop contaienr |
| j | next contaienr |
| k | previous contaienr |
| q | close window |
コンテナを個別で起動したいときにu、停止したいときにdを使用します。
docker.vimとの差別化
docker.vimは単体のコンテナ、イメージの管理に特化したプラグインになります。
機能はとても豊富で、次のことができます。
images
- image list(udpate every 5 second)
- delete image
- pull image
- search image
- open DockerHub in browser
- push an image
- tag an image
- build an image
- save an image to tarball
containers
- container list(udpate every 5 second)
- start/stop/restart/kill container
- delete container
- attach container
- run container(like docker run {container})
- monitoring container logs and CPU/MEM
- copy file/folders between containers and local filesystem
docker-composeはコンテナへのアタッチできるサブコマンドexecがありますが、こちらはdocker-compose.vimには実装していません。
なぜならdocker.vimにはその機能があり、そちらを使用すれば解決するからです。
docker-compose.vimは複数のコンテナを管理するためのプラグインという位置づけで、
個別のコンテナの管理や操作はdocker.vimのが優れているので、そちらを使用したほうが良いでしょう。
docker-compose.vimの今後
とりあえずがーっと作ったので、もう少しよくあるユースケースの情報を収集して、便利そうなら機能を追加する予定です。
この記事を読んで、これができたら便利そう、などの意見があればぜひコメント頂ければと思います。
最後に
docker.vimとdocker-compose.vimを使えば、
Vimでコンテナを使った開発がさらに楽になるので、ぜひとも両方を入れてみて下さい。
そして良いなと思ったらGitHubのスターを押して頂けると励みます。
お礼にバナナあげるかもしれません。


