容器技术反例:哪些不适合利用Docker实现?

51CTO.com快译】 此篇文章,将为大家详细介绍那些不适合利用Docker实现的技术。

一)容器中的数据或者日志

容器适合处理无状态且仅需要短期运行的应用。这意味着我们不应将数据或者日志存储在容器内——否则其会在容器终止时一并消失。相反,利用分卷映射将其持久存储于容器之外。ELK堆栈可用于存储及处理日志。如果所管理分卷曾在测试流程中使用,那么请在dockerrm命令中添加-v将其移除。

二)容器IP地址

每套容器都拥有自己的IP地址。多套容器彼此通信以创建同一应用,例如部署在应用服务器上的应用即需要与数据库对话。在运行过程中,会不断有旧容器关闭,新容器开启。依靠容器IP地址意味着我们需要不断更新应用配置方能保持这种通信能力。相反,我们应当为其创建专门的服务,用于容纳动态变化的容器引用逻辑名称,并借此实现基本的负载均衡功能。

三)容器中运行单一进程

每个Dockerfile都会使用一个CMD与ENTRYPOINT。通常来讲,CMD会利用脚本以执行部分镜像配置,而后启动该容器。不要尝试在该脚本中使用多个进程。大家应当在创建Docker镜像时遵循分离原则的方针,否则会令容器在管理、日志收集以及更新方面遭遇更多难题。大家可以考虑将应用拆分成多套容器,并对其进行逐一管理。

四)不要使用docker exec

docker exec命令会在运行中的容器内开始一条新命令。其适用于利用docker exec -it {cid} bash实现shell附加。然而除此之外,容器本身应该已经运行有该进程。

五)保持镜像精简

创建一个新目录,并将Dockerfile及其它相关文件保存在其中。另外,考虑使用.dockeringore以移除任何日志、源代码等,而后再进行镜像创建。确保移除一切已经被解压的下载软件包。

六)利用运行中的容器创建镜像

应使用docker commit命令创建新镜像。这种方式适用于容器已经发生改变的情况。不过由此创建的镜像不可重现。相反,我们应在Dockerfile中进行修改,终止现有容器,并利用更新后的镜像启动新容器。

七)Docker镜像中的安全凭证

不要将安全凭证存储在Dockerfile当中。其将以明文形式存在并被检入存储库内,这将引发潜在的安全威胁。使用-e将密码指定为环境变更。而后,可利用--env-file读取文件中的环境变量。另一种方案是利用CMD或者ENTRYPOINT指定一套脚本。该脚本负责将凭证由第三方处提取出来并用于配置应用。

八)latest标签

很多朋友可能习惯利用couchbase启动镜像。如果未指定标签,那么容器会默认使用couchbase:latest镜像。此镜像可能并非最新,而是引用某个陈旧版本。需要强调的是,将应用引入生产流程要求配合一套采用特定镜像版本的完全受控环境。确保始终使用正确的标签以运行容器——例如使用couchbase:enterprise-4.5.1而非couchbase。

九)镜像不匹配

不要在开发、测试、分段以及生产环境内使用不同的图像或者标签。作为“选定来源”的镜像应仅创建一次,并被推送至存储库内。该镜像应被用于各类不同环境。在某些情况下,大家可以考虑在WAR文件上运行单元测试,而后再创建镜像。不过请注意,任何系统集成测试都应当在生产环境实际使用的镜像中完成。

十)发布端口

不要利用-P以发布全部公开端口,因为如此一来大家将能够运行多套容器并发布其公开端口。这样做亦意味着全部端口都将公开发布。相反,请使用-p以发布特定端口。

  

  

  

 作者:核子可乐译

来源:51CTO

时间: 2024-09-25 05:29:16

容器技术反例:哪些不适合利用Docker实现?的相关文章

《Docker进阶与实战》——第2章关于容器技术

第2章关于容器技术在第1章对Docker的介绍中,已经知道容器技术是Docker的一项基础技术,而在当前对Docker的火热讨论中,容器也时常跟Docker一起被提及.作为Docker的进阶书籍,有必要对容器技术做一些探讨,以深刻理解Docker与相关技术之间的关联.

容器技术如何改变游戏服务器托管行业

过去12个月以来,我们已经见证了Docker容器技术在游戏服务器领域诸多激动人心的发展态势. 这款核心产品在成熟度水平方面已经迎来显著提升,而用户基础也实现可观增长,同时亦出现了一部分能够解决多种关键性阻碍的先进功能.能够帮助游戏服务器以及其它较为严苛的应用类型实现在容器环境中的运行.我们还迎来了一系列激动人心的新型产品及技术发展成果,这也进一步证明了容器技术在游戏服务器领域的可观发展潜力. 作为一名热爱游戏产业的软件工程师,我一直把自己的业余时间用在同游戏相关的项目开发工作身上.我还就游戏服务

云计算:容器技术变革云计算,SaaS带动CaaS市场

报告摘要: 1.容器技术增速惊人,市场认可度提高 虚拟化是云计算的重要基础,Docker定义了一套容器从构建到执行的标准化体系,改变了传统的虚拟化技术,深度影响了云计算领域. 随着谷歌.亚马逊.微软等云计算厂商纷纷加大对Docker开源技术的投入,CaaS(Container-as-a-Service)的市场大门正式被开启.根据统计,到2015年全球已有46万个应用Docker化,两年实现增长3,000%.在发展速度上,已超过当时的虚拟化技术和云计算技术. 2.SaaS产业向移动和垂直领域发展,

容器技术逐渐成熟 终将被大企业所接受

容器技术近年来因为Docker的不断发展而壮大,Docker逐渐成为容器的代表,容器技术通过不断的试验和发展也逐渐得到企业的认可. Docker 简单来说,Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上.Docker的出现一度让人们对虚拟化技术产生质疑,容器即将取代虚拟化的声音不绝于耳. 近日,根据RightScale的调查,我们可以看到企业对于容器技术的接受程度正在增加,并已经在部分企业获得大规模应用.调查显

利用Docker和阿里云容器服务部署高可用Ghost博客集群

简介 Ghost是一个流行的开源博客平台(Open source blogging platform),基于 Node.js 构建,博客内容默认采用 Markdown 语法书写,给用户提供一种更加纯粹的内容写作与发布平台. Ghost的部署和运维需要一定的Web开发基础,利用Docker技术可以大大简化Ghost的部署和更新.Docker Hub上面也提供了Ghost官方镜像 使用Docker镜像,不懂得Node.Js的同学也可以分分钟在本地或阿里云容器服务上搭建起一个单节点的Ghost博客,但

【阿里云资讯】Docker首个国内合作商,阿里云何以认定容器技术将成主流?

阿里成Docker首个国内合作商 10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云称其将为客户提供更加先进的云上应用管理服务.双方称在开源容器技术以及其发展方向共同努力,为客户提供本地化Docker的企业级支持和咨询服务. Docker自问世三年来,社区不断壮大,项目升温之迅猛在开源社区中并不多见,并受到IT业内的广泛关注.不过,Docker在国内真正的大规模应用仍然不多,目前国内Docker的使用状况

Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)

从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论一个重要的概念 - 集群化(Clustering). 服务器集群由一组网络上相互连接的服务器组成,它们一起协同工作.一个集群和一堆服务器最显著的区别在于: 集群能够像 单个 系统那样工作,同时提供高可用.负载均衡和并行处理. 如果我们部署应用和服务时选择的是多个独立的服务器而非集群,资源的整体利用率则很难达到最优,因为我们无法提前知道如何分布这些应用才能达到资源利用的最大化.而且,应用使用资源的趋势是

你还不造吗?Docker容器技术5大窍门!

Docker自从去年走到聚光灯下后,其粉丝基数就一直在增长.想要了解为什么,以及想从你的容器中获得更多,以下主要回顾了2015年Docker容器的五大窍门.2014年Docker复兴了容器技术,并在过去的一年里主导了整个容器市场.容器的便携性和可扩展性在云用户和开发人员那里得到了共鸣,并随着应用的增长,Docker不断地针对企业用户扩展其自身功能.尽管竞争对手争相提供类似服务,但Docker已经成为一个家喻户晓的名字.不过,一些企业仍然不确定他们是否应该采用容器以及如何将容器集成到他们的云环境中

银行用户眼中的Docker容器技术

近期,DaoCloud团队受邀做客招行银行,与招行信息技术部高层及架构办公室负责人就Docker容器技术.银行基础架构转型进行了一次研讨会.本文摘录了这次研讨会的一些观点想法,并分享DaoCloud对新一代企业云计算基础架构.容器化应用交付的最佳实践.  "传统金融行业的IT系统首重质量和稳定,与之匹配的IT架构有集群化程度低.集约化水平高.应用架构耦合度紧密.Scale-UP垂直扩展等特点,业务需求对IT系统的影响是牵一发而动全身,为此研发流程是非常注重过程,瀑布模型很切合我们的管理体系.互联