在编程行业, 编程人员常常会产生一种错觉: 一旦他们学会了使用某个工具, 就自以为掌握了某种技术. 不论是掌握了一门编程语言, 还是学会了何种新型和”潮流时尚”的工具, 如果只是停留在如何使用的水平, 却不知其如何设计出来的, 那么, 程序员仅仅只是使用者罢了, 这谈不上算什么技术.

就以docker为例, 如果我能熟练使用, 我不过也是这个工具的使用者之一. 用<卖油翁>的话说, "我亦无他,唯手熟尔". 我就必须时时提醒自己, 不论掌握哪些工具, 都应该避免产生自我良好的感觉. 要知道, 对于一个刚入门的编程人员, 他们对着官网的文档看半天, 他们也能学得会.

那么一个”老”程序员和一个”新”程序员应该怎样才能产生差距, 才不会被淘汰呢? 如果你只是比他们多会几种工具, 我相信不需要几年, 就将会被淘汰. 从我的理解, 就必须学习好算法和稳固计算机的底层原理, 并且不断开阔自己编程的思路, 写出良好的代码(无论是代码风格还是执行的性能).

我不太喜欢网络上各种各样的所谓教程, 大多数的时候, 官网上资料已经足够详细. 没必要浪费网络带宽, 复制粘贴, 去写没什么用的教程. 所以, 我把所有的工具使用简记在放在同一个文件里, 方便自己快速查阅. 当然这可以偷懒, 避免需要记住太多命令. 应记住, 它们只是工具而已, 算不上什么技术和知识的学习. 废话到此结束.

Docker(linux)

简记: pull拉镜像, run跑容器, it容器内交互

# 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 使用阿里云的镜像加速器
# https://account.aliyun.com/login/login.htm?oauth_callback=https://cr.console.aliyun.com/#/imageList
# 登录后,在容器镜像服务》镜像中心》镜像加速器
sudo docker run hello-world
sudo docker pull busybox   # 拉取某镜像(busybox), 类似git
sudo docker images     # 输出镜像列表
sudo docker run busybox  # 创建busybox镜像的容器
sudo docker ps  # 显示当前正在运行的所有容器(可能为空)
sudo docker ps -a  # 运行过的容器列表, STATUS显示退出时间.
# docker run 使用it标志可以调用交互式的tty, it是缩写:
# -it is short for --interactive + --tty
# 如果省略i, 容器会执行, 但是会立马退出sh
sudo docker run -it busybox sh    # 然后就可以执行容器内的命令了
ls
exit  # 退出容器内tty
sudo docker rm ContainerID  # 允许空格, 删除多个容器
sudo docker rm $(sudo docker ps -a -q -f status=exited) # 删除全部退出的容器