我为什么喜欢用 Docker
今年4月份左右的时候有个事很有意思,一个老板(好像是 DNSPod 创始人)发了一个帖子,讲述他开除了只会用 Docker 的员工的事情:
被喷之后,他回怼网友 「我能管几百号人,自然有过人之处」 ,不过后来好像删了帖子。这事最终招致网友的各种嘲讽:
回到我自己这里,我的小 Lab 机器也使用了一堆容器服务,没有别的原因,就是因为简单,方便。可能会有人会说,如果一个小工具的安装和部署已足够简单,再提供容器部署方式,是不是多此一举浪费资源?从我自己的感受上来讲,当只装1-2个服务的时候,确实无所谓。但安装、管理维护多个看似“足够简单”的服务的时候,就不是这样了。光更新和灾备这两项就足够烦人,更别说像我这种有「洁癖」的人,你可能无法想象我在卸载软件后清理残留时候的抓狂。
目前我的 Lab 上服务全部采用 Docker Compose 方式部署,结构大概是这样的:
./my_lab_project/
├── docker-compose.yml
├── service-1
│ └── container-data
├── service-2
│ ├── container-config
│ └── container-data
├── service-3
│ ├── container-data
│ └── container-extensions
├── service-4
│ └── container-data
├── service-5
├── container-config
└── container-data
除了 Docker 本身具有的网络和文件隔离这些在安全、洁净方面的优点外,它还能带来:
- 方便更新:一条
docker compose pull
搞定 - 备份简单:使用目录映射而不是数据卷来做数据持久化,可对
my_lab_project
目录自动备份 - 容器互访简单:可以使用
container_name:port
的方式互相访问容器 - 灾备恢复简单:遇到异常情况,可在任意一台机器上用
docker compose up
恢复生产环境,加上修改 DNS解析,可能用不了2分钟就可以搞定。 - Graceful:没错,就是优雅
缺点就没有么?肯定有,网上吐槽比较多是内存、磁盘等资源占用,以及DNS解析方面的问题。但我目前在这些方面还没有遇到挫折,所以不好评价。但是,我会推荐一个吐槽 Docker 的视频 《Hitler uses Docker》
今日份的欢乐,全部来自这里了:
不得不说,视频的作者真他娘的是个人才,里面每一句台词都是很经典(用过 Docker 的应该都能找到笑点/槽点),我呢,正好在 VPS 上更新容器,看到这一幕的时候绷不住了~
视频下面的评论也是精彩纷呈,你可能难以相信这居然是一个八年前的作品,即便到了今天,观众们依旧可以纷纷找到「痛点」和「共鸣」~
其实呢,无所谓好坏,只有适不适合自己。
开心就好~