资讯专栏INFORMATION COLUMN

想用好 Docker ,你不能错过这些

blankyao / 2665人阅读

摘要:阿里云的容器服务采用的是的模式,集成了阿里云的一些基础服务日志监控存储等,在调度等方面做了很多优化,你也可以使用看看。容器服务提供了针对阿里云的的插件,容器之间的数据包不需要封装操作,性能几乎和内两台通信性能一样。

Docker 引起了交付方式的变革,从交付代码和文档变成交付Docker镜像乃至交付编排模板。
容器服务让我们可以专注应用本身功能的开发,而无需关注基础设施、应用部署、管理等等一大堆棘手的问题。

越来越多的公司开始考虑使用Docker的方式部署和管理应用,以降低运维的成本。
同时,阿里云容器服务团队正在积极的推进国内 Docker 的发展,阿里云在云栖大会上宣布和Docker公司战略合作,将为Docker Hub提供中国运营的基础服务

说易行难,真正开始的时候又不知道具体该做什么,会遇到哪些坑?
日前,阿里云容器服务团队进行了一次线上的圆桌互动,以下是提炼和总结

来自用户的总结:
个人理解:具体到 Docker 技术在测试领域的应用,可以体现在:
1)快速搭建兼容性测试环境

从Docker的镜像与容器技术特点可以预见,当被测应用要求在各类Web服务器、中间件、数据库的组合环境中得到充分验证时,可以快速地利用基础Docker镜像创建各类容器,装载相应的技术组件并快速启动运行,测试人员省去了大量花在测试环境搭建上的时间。

2)快速搭建复杂分布式测试环境

Docker的轻量虚拟化特点决定了它可以在一台机器上(甚至是测试人员的一台笔记本电脑上)轻松搭建出成百上千个分布式节点的容器环境,从而模拟以前需要耗费大量时间和机器资源才能搭建出来的分布式复杂测试环境。

3)持续集成

Docker可以快速创建和撤销容器,在持续集成的环境中,可以频繁和快速地进行部署和验证工作

精彩问答:
hyper_x问:如何平滑迁移到Docker ?合适的容器调度管理平台有推荐吗?多主机跨容器通信及性能问题怎么处理?容器的监控及故障迁移恢复怎么操作?

专家答:
迁移docker的时候,建议“慢慢来”,先把一些边缘的、无状态的应用放在容器里运行,核心服务先不动,稳定之后再逐渐开始迁移重要应用。
迁移过程中,可能会涉及到对应用访问模式的改造,在条件允许的情况下,比如业务压力不是这么大,可以做一些改造。比如两个应用原来是部署在一台机器上,通过unix domain socket通信,切换到Docker之后,推荐每个容器只跑一个应用,但是在过渡期,做一个大镜像,里面放两个应用也不是不可以

容器管理方面,目前主要三个方面:k8s, swarm和mesos,很难说哪个更好,您可以都尝试下。阿里云的容器服务采用的是swarm的模式,集成了阿里云的一些基础服务:日志、监控、存储等,在调度等方面做了很多优化,你也可以使用看看。

容器跨主机通信,Docker本身提供了overlay network,也有一些开源的软件 Flannel calico,按照底层网络模式分,overlay flannel weave等是vxlan的方式,需要对packet封装和解封,性能上差一些,calico 使用 BGP 协议直接路由,但是对底层的网络模型要求较高。容器服务提供了针对阿里云的VPC的 Docker 插件,容器之间的数据包不需要封装操作,性能几乎和VPC内两台ecs通信性能一样。

故障迁移和恢复,这个在容器服务中是原生支持的。监控方面可以参考下我们的帮助文档: https://help.aliyun.com/docum...

rg小恒问:
1.Docker的方便我觉得是敏捷交付以及持续集成,在对集群宿主机的资源利用上比虚拟主机方便一些,譬如容器迁移比vm迁移方便,我想问一下容器对于资源利用比直接跑在vm上是不是要好一些

2.假如我的应用是基于tomcat的,挂载volume是用宿主机的磁盘好一些还是用nas,发布新版本(譬如更换war包)有什么好的方法,是我手动去替换volume里边的war包还是触发自动构建重新起一个tomcat容器,如果我只是想替换tomcat应用容器中的某些jsp文件呢

3.用阿云的容器服务的时候,集群默认会有etcd容器还是需要自己起一个

4.容器的监控是用阿云的监控即可还是需要自己另寻他路,譬如用谷歌的cadvisor等

专家答:
更细粒度的资源管理可以提高资源利用率,从物理机到虚拟机再到容器,资源的粒度在不断细化。一台VM上启动多个容器能更充分的利用VM的资源,配合云服务和自动调度等手段,可以进一步提供资源利用率和降低资源成本。
docker推崇的做法是不可变基础架构,变更的是镜像而不是容器内的文件,所以每次发布,要用新的war包构建一个新镜像,再用新镜像启动应用。即使不说容器,在Java Web开发里也不建议在生产环境里热更新JSP,生产环境要求的是可靠和高性能,替换jsp这种方式只能用在开发测试环境。

容器服务有etcd服务,但主要用于Docker daemon以及容器服务自身的agent,如果是您自己的业务上用到etcd,可以自己起一个。

监控方面,容器服务默认就支持了。您可以在控制台页面上查看每个容器的实时监控信息,这些数据也会自动同步到云监控,不需要额外配置。另外如果您自己有监控系统,也可以通过配置把所有的监控数据发送到您的监控系统里。可以参考监控的文档:https://help.aliyun.com/docum...

用户问:有没有镜像制作的最佳实践可以参考?
专家答:
使用 Dockerfile 制作镜像,不要用 docker commit
Dockerfile放在一个专门的目录里,其中只包含制作镜像所需的文件(如果分离构建和镜像制作,这里只放构建后的包,不要放源码)。
必要的时候可以使用.dockerignore
减少层数量,Dockerfile 里用 RUN 的时候,一个RUN后面跟多个命令,命令之间用&&分割
经常变化的内容放在 Dockerfile 的后面,前面不变的部分可以直接用 Cache,降低 Build 镜像的时间

更多内容欢迎关注 阿里云容器服务官方页面,https://www.aliyun.com/produc...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26773.html

相关文章

  • 用好 Docker不能错过这些

    摘要:阿里云的容器服务采用的是的模式,集成了阿里云的一些基础服务日志监控存储等,在调度等方面做了很多优化,你也可以使用看看。容器服务提供了针对阿里云的的插件,容器之间的数据包不需要封装操作,性能几乎和内两台通信性能一样。 Docker 引起了交付方式的变革,从交付代码和文档变成交付Docker镜像乃至交付编排模板。容器服务让我们可以专注应用本身功能的开发,而无需关注基础设施、应用部署、管理等...

    Elle 评论0 收藏0
  • Mac 开发环境配置

    摘要:引言本周收到了新的,感谢潘老师。然后开始了安装开发环境的生涯,相较于和,还是挺简单的。经过上次潘老师的指点,决定以后的环境都使用启动。如今正值多事之秋,中美贸易战,失去了美国的技术支持,华为各项备用技术转正,自主研发。 引言 本周收到了新的Mac mini,感谢潘老师。 showImg(https://segmentfault.com/img/bVbsXuS?w=627&h=437);...

    Render 评论0 收藏0
  • Mac 开发环境配置

    摘要:引言本周收到了新的,感谢潘老师。然后开始了安装开发环境的生涯,相较于和,还是挺简单的。经过上次潘老师的指点,决定以后的环境都使用启动。如今正值多事之秋,中美贸易战,失去了美国的技术支持,华为各项备用技术转正,自主研发。 引言 本周收到了新的Mac mini,感谢潘老师。 showImg(https://segmentfault.com/img/bVbsXuS?w=627&h=437);...

    lentoo 评论0 收藏0
  • DockerCon 2017落幕:不得错过的精彩瞬间

    摘要:的三大重大新闻正式版全面发布经历几年的打磨,在前期正式发布了。发布为容器部署而生的分布式块存储项目是在期间的另一重大发布基于云和容器部署的分布式块存储新方式。的工程师还被邀请至的展台,向参会者介绍和。和讨论大会第二天下午,在号会议室开放。 DockerCon2017已落下帷幕。展台,office hours,roadmap互动讨论,专题演讲,主题Party......这里有太多精彩的瞬...

    joywek 评论0 收藏0
  • 盘点那些可能错过的CNCF优秀开源项目

    摘要:自那以后,已经增加了个开源项目。该项目由监管,于年初加入。但是,指的是谷歌实现的远程程序调用,它利用了和协议缓冲区。事实上,来自的流行键值存储和谷歌自己的都是最后一个值得关注的项目是也称为,一个容器运行时。 自2015年成立以来,云原生计算基金会(CNCF)已经成为开源生态系统中最重要的推动者之一,特别是当涉及到影响容器和其他云原生技术的工具时。CNCF成立的目的是促进和组织与大型行业...

    GraphQuery 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<