Docker
fzf

dockerコンテナの起動・停止をちょっと楽にするシェル関数

More than 1 year has passed since last update.

dockerコンテナの起動と停止するたびに名前の指定が面倒になってきたので、fzfを使ってシェル関数を作った。

※私はたまたまpecoよりfzf派なだけなのでpeco派の人は適宜書き換えていただければいいかと。

※私はシェル関数を~/.zshrcに追記してます。


docker-start

image.gif

起動していないコンテナを選んでからスタートさせる。

docker-start() {

local container
container="$(docker ps -a -f status=exited | sed -e '1d' | fzf --height 40% --reverse | awk '{print $1}')"
if [ -n "${container}" ]; then
echo 'starting container...'
docker start ${container}
fi
}


docker-stop

image.gif

起動しているコンテナを選んでからストップさせる。

docker-stop() {

local container
container="$(docker ps -a -f status=running | sed -e '1d' | fzf --height 40% --reverse | awk '{print $1}')"
if [ -n "${container}" ]; then
echo 'stopping container...'
docker stop ${container}
fi
}


docker-exec-bash

image.gif

コンテナにbashでつなぐ。

(bashでつなぐことがよくあるので、ついでに作った。)

docker-exec-bash() {

local container
container="$(docker ps -a -f status=running | sed -e '1d' | fzf --height 40% --reverse | awk '{print $1}')"
if [ -n "${container}" ]; then
docker exec -it ${container} /bin/bash
fi
}


docker-rm

起動していないコンテナを選んでから削除させる。

docker-rm() {

local container
container="$(docker ps -a -f status=exited | sed -e '1d' | fzf --height 40% --reverse | awk '{print $1}')"
if [ -n "${container}" ]; then
echo 'removing container...'
docker rm ${container}
fi
}


docker-rmi

(追記)ディスクいっぱいになってイメージ削除するときにも使えた。

docker-rmi() {

local image
image="$(docker images -a | sed -e '1d' | fzf --height 40% --reverse | awk '{print $3}')"
if [ -n "${image}" ]; then
echo 'removing container image...'
docker rmi ${image}
fi
}


参考

fzfのExamplesを参考にしました。

https://github.com/junegunn/fzf/wiki/Examples