Dockerを便利に使うためのaliasをつくった

tcnksm/docker-alias

いろいろなひとのTipや,自分がやったやつの寄せ集めで作った.以下で使えるようになる.

$ curl -fsSL https://raw.github.com/tcnksm/docker-alias/master/zshrc >> ~/.zshrc && source ~/.zshrc

コンテナの起動

インタラクティブモードでコンテナを起動する.

alias dki="docker run -i -t -P"
$ dki base /bin/bash

デーモンモードでコンテナを起動する.

alias dkd="docker run -d -P"
$ dkd base /bin/echo hello

コンテナの情報

最後に起動したコンテナのIDを取得する.

alias dl="docker ps -l -q"
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
$ dl
4b9aa02548ae

コンテナのIPを取得する.

alias dip="docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
$ dip `dl`
172.17.0.2

イメージのビルド

カレントディレクトリのDockerfileをタグを指定してビルドする.

dbu() {docker build -t=$1 .;}
$ dbu tcnksm/test 

掃除

起動中の全てのコンテナを停止する.

dstop() { docker stop $(docker ps -a -q);}
$ dstop
600d74545149
7a4f1d592aa3
9c15701a1733

停止中の全てのコンテナを削除する.起動中のコンテナはスキップされる.

drm() { docker rm $(docker ps -a -q); }
$ drm
76b36e023960
1565bc2b6dca
Error: container_delete: Impossible to remove a running container, please stop it first

起動中のコンテナを全て停止して,コンテナを削除する.

alias drmf='docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)'
$ drmf
3a71b6a4198f
c5bff0b6762a
eee80ba68cbc

すべてのイメージを削除する.利用中のイメージはスキップされる.

dri() { docker rmi $(docker images -q); }
$ dri
Deleted: 6080fd1cc342a7d6b19168f6bbb292951c42cbac6ff3b29a3b139a4bbb04e5d2
Deleted: 6571a2ed4ea4ee0680449e678dd9f5ddb3e9ccef74c782a3e3b653fc057ad786
Deleted: b273e5e9c1e4403727f4a0305d98ee6c47f5f83b46523a7f86051a7f8e7c980a
Error: Conflict, cannot delete image 1a6d876a1d70 because it is tagged in multiple repositories, use -f to force

その他

他にもいくつかショートカットコマンドのaliasが設定されている.それらを確認するには,以下のようにする.

$ dalias
di => docker images
dip => docker inspect --format {{ .NetworkSettings.IPAddress }}
dkd => docker run -d -P
dki => docker run -i -t -P
dl => docker ps -l -q ...

動かないとか,こんなんあったらとかあればPull requestやIssueお待ちしております.

参考