刚刚接触docker,真的好麻烦啊,不明白为什么要选择docker,我都搞了两天还在搭环境,又告诉我Windows版本过低不适配docker,转而在Ubuntu里装docker,然后MySQL、php、Nginx又得重新装一遍。。。好麻烦啊
1 用的人越多,越需傻瓜式操作
就不说docker了,以前有一次做项目,全国42个机构要安装,我做了很详细的文档,100页(根据各单位实际情况要求改ip,改端口,改路径盘符,改管理员密码,改虚拟机名称,更新各自的许可证等),自己试了好多次,确认没问题,最后一次全国范围的培训,看了下大家的情况,真心觉得技术参差不齐,最后决定发虚拟机:
- 一个VMware的版本
- 一个hyperv的版本
把文档缩成三页,七步。终于顺利完成。太香了!配置的人痛苦,接电话解决配置问题的人更痛苦!
2 文档真这么长???
nginx这些算框架、中间件,如果买你软件的人也是在你软件的基础上做二次开发,那1万页、几十万页的文档才是正常情况(大型企业级软件的使用手册就是这样)。
但如果买你软件是为了直接使用,那你就必须保证软件可以傻瓜式一键安装成功。如果每个项目的需求不同需要定制、裁剪,那正确做法应该是设置交付岗位,由专业的交付工程师根据合同要求来给客户安装硬件和软件,并通过验收测试。
3 显然没被环境毒打过
之前复现一篇论文,按照说明文档的要求配了无数遍的环境,发了无数封邮件给作者,前后历时大概一周,最后作者终于甩给我一个镜像,不到半小时就搞定了。当时我就觉得,要没有docker,我这辈子应该都弄不出来。
任何饱受配环境折磨的人最终都会由衷赞叹“docker 真香”。
可以通过直接看dockerfile 还可以知道自己搞的环境和作者搞的环境究竟哪里不同
4 真香定律
不知道你的身份角色。
- 若是偏运维,你之后会明白的,等你的用户和领导要求你同一台机器上同时安装很多不同版本的php、安装不同版本的nginx时,你就知道麻烦了
- 若是偏开发,你去求别人在服务器上安装依赖时就知道了,你青睐ubuntu而运维说服务器只能是centos时你就知道差异了
docker正是调和这个矛盾的利器。开发部门将软件以及软件所有的依赖全部封装到一个镜像里,爱用debian用debian,爱用alpine也可以, 爱装java11就尽情用。这些真不香么?
运维部分呢,只需要拿到镜像,设置好网络和服务器资源就可以了, 软件依赖再也与你无关,不香么?
5 总结
docker 其实本质就是一个跨平台安装包,新一代安装神器,非要上理论扯些容器,虚拟化啥的,反而搞的玄乎。