Skip to content
docker command line helper
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
documents
.gitignore
README.md
recker

README.md

Recker

docker command line helper

Recker


Recker とは

Recker は Docker のコマンドラインヘルパーツールです。

  • 作業対象イメージ・コンテナを一覧画面からカーソルキーで選択する機能
  • TAB キーでのイメージ・コンテナ名・ID補完機能
  • docker build の゛土台“(scaffold)作成機能
  • docker run の簡便化、ポート・リンク・ボリュームの設定サポート機能

をもっています。でも、中身はただの bash スクリプトです。

以下に、なんとなくビルド例集もあります:

もう少し詳細なリファレンスは以下にあります:

利用例

SLを走らせる

$ recker scaffold my_sl_container
$ cd ~/Docker/Dockerfiles/my_sl_container
$ cat <<'_EOF_' >> container_build.sh
yum -y install epel-release
yum -y install sl
_EOF_
$ sed -i -e 's|^\(EXEC\)=$|\1=/usr/bin/sl|' config.sh
$ recker build ./
$ recker run ./
                      (@@) (  ) (@)  ( )  @@    ()    @
                 (   )
             (@@@@)
          (    )

        (@@@)
     ====        ________                ___________
 _D _|  |_______/        \__I_I_____===__|_________|
  |(_)---  |   H\________/ |   |        =|___ ___|
  /     |  |   H  |  |     |   |         ||_| |_||     _
 |      |  |   H  |__--------------------| [___] |   =|
 | ________|___H__/__|_____/[][]~\_______|       |   -|
 |/ |   |-----------I_____I [][] []  D   |=======|____|_
__/ =| o |=-~~\  /~~\  /~~\  /~~\ ____Y___________|__|___
|/-=|___|=   O=====O=====O=====O|_____/~\___/          |
 \_/      \__/  \__/  \__/  \__/      \_/
$ 

Apache族をたくさん呼ぶホホホ

$ recker scaffold call_apache
$ cd ~/Docker/Dockerfiles/call_apache
$ cat <<'_EOF_' >> container_build.sh
yum -y install httpd
_EOF_
$ cat <<'_EOF_' >> container_services.sh
service httpd start
_EOF_
$ sed -i \
    -e 's|^\(RUN_AS_SERVICE\)=.\{0,\}$|\1=1|' \
    -e 's|^\(AUTOMAP_PORT_HTTP\)=.\{0,\}$|\1=1|' \
    config.sh
$ recker build ./
$ recker run ./
HTTP port auto-mapped to: 8000
Changed mode to background because of declaration RUN_AS_SERVICE
8214acd40c4c5afeae9746a08ff9b32722709b05d18fd5783f11d929b7f76b00
$ recker run ./
HTTP port auto-mapped to: 8001
Changed mode to background because of declaration RUN_AS_SERVICE
0d7a3a762cffe07b0522841b9f71b4bdea29fe9f24b647e962a9ba5ce505eb3f
$ recker run ./
HTTP port auto-mapped to: 8002
Changed mode to background because of declaration RUN_AS_SERVICE
cd0a73733580ad604263d1fa4c140d41367fde3a7314fb567495826089342ce0
    :

コンテナ名をTAB補完 or カーソルで選択する

$ recker ps [TAB]
0d7a3a762cff   9763f9c4bed2   call_apache    call_apache-2  lamp
8214acd40c4c   c5eb911def0f   call_apache-1  cd0a73733580   mean

$ recker ps [Enter]
    ↓画面

カーソル選択画面

実行環境・必要プロダクト

  • Docker 1.6.0 以上
    たぶん1以上なら動く気がする
  • bash 4以上
  • Percol
  • CentOS 7.x
    でしか動作確認していません

なお、コンテナのデフォルトは CentOS 6 になっています(変更可能)。

導入方法

root 権限でインストールする場合は、

# wget -O /usr/local/bin/recker \
  https://raw.githubusercontent.com/hilotech/recker/master/recker
# chmod +x /usr/local/bin/recker

で完了です。スクリプトを好きなところに置くだけで通常ユーザー権限でも利用できます。ただし、実際に使用する場合は該当ユーザーが docker グループに所属していたほうがいいでしょう。

TAB補完機能は、

# echo '[[ "${PS1-}" ]] && source <(recker bashcompletion)' \
    >> /etc/bashrc

とするか、または一時的に利用するだけなら、

$ source <(recker bashcompletion)

でOKです。

メニュー形式の選択画面を利用する場合は、Python製のツール Percol が必要です。以下の手順に準じて easy_install, pip を導入後に percol をインストールしてください。

# yum -y install python-setuptools
# easy_install pip
# pip install percol
You can’t perform that action at this time.