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