より単純な(堅牢な)オプションは、bash-preexecのようなものを使用して、「docker run」で始まるコマンドをキャプチャすることです。次に、これらのコマンドをどこかに保存し、後で取得することができます。
たとえば、bashプロファイルに次のようなものを追加できます。
[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh
docker_run_history=~/.docker_run_history
docker_clear_history(){
echo -n > $docker_run_history
}
docker_search_history(){
search_for="$@"
[[ -z $search_for ]] && search_for=".*"
\cat $docker_run_history | grep "$search_for" | tail -1
}
docker_ps_mod(){
for c in $(docker ps --format "{{.Image}}"); do
echo "Container $c was run using:"
echo -e "\t$(docker_search_history $c)"
done
}
docker_hook(){
if [[ $@ =~ ^"docker run".*$ ]]; then
\echo "$@" >> $docker_run_history
fi
}
preexec(){
docker_hook $@
}
次に、あなたはあなたの物事を実行することができます:
source ~/.bash_profile
docker run -it --rm -v $(pwd)/data:/data -p 8080:80 image
docker run -d daemon
docker_ps_mod
どの出力:
Container image was run using:
docker run -it --rm -v $(pwd)/data:/data -p 8080:80 image
Container daemon was run using:
docker run -d daemon