pshu 码农英语课堂
非 mac 用户可以直接跳到下一个 tip。
首先你已经安装的了docker for mac,自然我们要先安装 bash-completion
brew install bash-completion
然后配置 .bashrc
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
最后做下软链接就好了, 重启下 shell,感受下两下 tab 自动补全带来的快感。
cd /usr/local/etc/bash_completion.d
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion
在构建 docker images的时候,我们可以通过合理的控制构建时的 context 来提高 image 构建的速度。当然首先我们会写 .dockerignore 来限制 context 中的内容。但是有时候我们还是想查看下 context 到底有哪些内容,还有没有压榨的空间。在 context 所在的目录,通过下面的 docker file 构建一个image,然后在运行 image,就可以查看当前的 context 的内容了。
FROM busybox
COPY . /tmp
但是每次总是要写这么一个 dockerfile 也挺麻烦的,大家可以做一个下面的 alias,就会愉悦很多。需要的时候执行 context-image 就行了。
alias context-image=‘printf "FROM busybox \nCOPY . /tmp\n" | docker build -t context -f - .‘
最后在分享几个P叔关于 docker 压箱底的东西。虽然安装好了自动补全已经方便了,但是总还有懒要偷的嘛。
function dockerimageshell(){
docker run --rm -it $@ /bin/sh
}
比如用上一个 Tip 创建的 context image,用这个函数就可以快速查看;自己也加上 -v -p 等参数来控制下映射
dockerimageshell context
function dockercontainershell(){
docker exec -it $1 /bin/sh
}
这里用容器的 hash 还是名字了什么,都可以快速的进入到容器的 shell 中。
最后一个大扫除下,比如我们刚才创建的 context image,查看完了就不要留在系统里面浪费空间了。下面的函数不仅清理没用的 image,各种 volumes network 统统帮你搞定。
function dockercls(){
docker system prune
}
END
就这么三个小tips,希望对大家有用。
原文:https://blog.51cto.com/15060545/2641336