ITPub博客

首页 > 云计算 > > 问答-Docker的优缺点有哪些?

问答-Docker的优缺点有哪些?

作者:浪花小雨滴 时间:2020-05-09 18:01:50 0 删除 编辑
作者:木头龙
链接:https://www.zhihu.com/question/384345807/answer/1159072422
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对比一下,同样要安装运行一个软件,用Docker和不用Docker的差异:


下载安装:

  • Docker:pull一个image下来就可以了。
  • 包管理:用发行版自带命令,直接apt-get或者yum install。但很多时候,需要同时下载安装依赖的库,不过发行版的包管理系统通常会帮你搞定——前提是不要跟你现在的包发生冲突,否则有你搞的。
  • 源码编译:发行版仓库里面的有可能版本有点老,你需要用最新版的功能。怎么办?去官网/Github下载源码,编译安装——等等,不要说的那么轻巧,你有对应的编译环境么?没有的话要先安装配置好编译环境。你知道用什么命令什么参数编译么?你装好编译依赖的底层库了么?底层库的版本符合要求么?不符合要求的话能更换成符合要求的版本么?换成符合要求的版本后你现在跑的应用会不会出问题?

小结:Docker的下载安装最简单,包管理只要不碰到问题也很简单,源码编译最麻烦。


配置:

  • Docker:参考文档,写好配置文件
  • 包管理:参考文档,写好配置文件
  • 源码编译:参考文档,写好配置文件

小结:众生平等


运行:

  • Docker:一条命令,docker run,不过参数要写好,通常注意几个地方就行:重启设定、挂载配置文件目录和数据目录、映射端口、入口命令/参数。当然,有的应用的镜像做得比较复杂的,还需要另外提供环境变量。这些一般做的比较规范的镜像文档都有文档和例子,抄过来改一下就是了。
  • 包管理:直接运行就好,顶多启用一下服务。
  • 源码编译:直接运行就好,顶多启用一下服务。

小结:Docker比较麻烦点。


修改配置:

  • Docker:参考文档,改配置。重启容器或者停止容器后删除,重新运行容器。
  • 包管理:参考文档,改配置。杀进程,重新运行或者重启服务。
  • 源码编译:参考文档,改配置。杀进程,重新运行或者重启服务。

小结:众生平等


升级版本:

  • Docker:pull image更新镜像,停止容器后删除,重新运行容器。
  • 包管理:用发行版自带命令,直接apt-get update或者yum update。重新运行或者重启服务。可能碰到和下载安装相同的问题。
  • 源码编译:下载新版,编译安装。重新运行或者重启服务。可能碰到和下载安装相同的问题。

小结:众生平等

最后总结

似乎Docker的下载安装比较简单,但运行比较麻烦一点?如果你只需要安装运行一个应用的话的确是,但如果你需要安装和跑多个应用的话——例如全套web server+php+数据库,docker你搞通一个应用,再多N个应用其实全都是一样的,改几个参数就是了。但前提是搞明白了docker运行命令里面的参数的用途,如果只是照着网上教程贴命令,不知道为什么这个参数用这个值,那的确是很麻烦。


而下载安装/升级版本这两个步骤,包管理碰不到问题是很方便,只是万一碰到问题的话,每一个应用需要的解决方案通常是不一样的,每一个碰到问题的应用,或者一个应用不同版本碰到不同的问题,你都要去找资料找文档甚至去社区求助来解决。甚至如果发行版仓库里面的包版本太旧没有你需要的功能,你将不得不面对更复杂的源码编译安装。Docker的优点就是,你不会碰到这样的情况。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3142692/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39983