看到越来越多的文章安利docker,作为菜鸟萌新有几个问题希望用过的大佬指点一下心中的迷惑
1.目前我的流程是 npm run build
,然后借助 vscode
监听dist目录,自动通过sftp上传到服务器,一步到位,打开浏览器即可以预览
那么如果使用 docker
有什么优势呢?
2.docker
是虚拟机, 那么我访问虚拟机里面的文件,比如查看日志,修改文件。那么要敲一些记不住的命令行进去,而如果使用宝塔之类的,直接能webGUI点进去找到目录查看
这种docker
有什么优势呢?或者有什么替代处理方案呢
3.docker
是虚拟机,跑一个linux至少得运行一个linux镜像,而我本身的centos已经是一个linux环境了,跑两个是不是有点浪费资源?
以上都是我get不到的点,希望指点一下十分感谢!
你觉得docker没啥用,自然是因为你没遇到这样的场景,所以就算强行上了docker,也会觉得非常别扭。想了想前端用docker好像确实不是非常必要,
npm build
以后出来一堆静态文件,扔到nginx里面就完事了。但是假如是后端的话,就比较麻烦了。一个应用要用python3.5,另一个应用要用python3.8,还有个应用依赖XXX,这个XXX还依赖于python3.3……搞起来就比较麻烦了。当然,大多数工具都有相应的多版本共存,但是弄起来不麻烦吗。而且要是很多台机器同时配置,简直想死了。
这时候如果把它封装成docker镜像,无需配置,运行仅需要一条命令,应用之间有隔离,大家内部访问的都是mysql:3306,而且还不会干扰,简直就是神器!如果你对这些没啥感觉,可以尝试一下自己从头配置搭建一个gitlab,然后再用docker启动一个gitlab,体验简直就是天差地别。
首先纠正一个小错误,docker是虚拟化技术,但并不是虚拟机,docker是半虚拟化的。虽然确实访问文件需要多一层,但是既然有宝塔WebGUi,自然也有相应的Docker WebGUI,也可以比较简单的查看容器的各项信息。
还是那句话,docker是半虚拟化的容器,有一个特点就是性能比较高。其实现在虚拟机的性能也不错,但是容器性能更高,完全相当于原生应用。你用docker跑mysql,和本地部署mysql没有什么差别,性能完全不受影响,浪费资源的情况更是不存在。
而且现在docker也并不是新鲜技术,早就广泛应用了,大家用的好好的,所以如果你有想法的话完全可以放心大胆的用,一点问题没有。