OSCON上最受欢迎的Docker演讲

简介: 本文讲的是OSCON上最受欢迎的Docker演讲,【编者的话】本文介绍了上个月OSCON大会有关Docker最受欢迎的一个分享:真实线上环境的Docker技巧。分享者是一名运维工程师叫Bridget,她所在的公司DramaFever在2013年10月开始在线上环境部署使用Docker。
本文讲的是OSCON上最受欢迎的Docker演讲 【编者的话】本文介绍了上个月OSCON大会有关Docker最受欢迎的一个分享:真实线上环境的Docker技巧。分享者是一名运维工程师叫Bridget,她所在的公司DramaFever在2013年10月开始在线上环境部署使用Docker。然而那个时候,Docker官网还挂着“请勿在线上环境使用”的警示条。从2013年到现在,DramaFever积累大量Docker线上使用的实际经验。这些经验的分享,吸引了大量的与会者,当天会场爆满,组织者只好请Bridget第二天再讲了一遍。可见这个分享还是蛮有价值, 这篇博文介绍的有些过于简单 ,有兴趣的话,可以直接去读她的演讲稿或者当天的视频。

上个月在波特兰举行的OSCON开源大会上,有关Docker和容器的分享最令人印象深刻的,一定会是Bridget Kromhout的“ 线上环境使用Docker,真实不炒作 ”。整个会场爆满,只剩下站的地方,后来者都被挤到门外面。组织者只好请Bridget第二天再讲了一遍。

毫无疑问,Docker非常非常的火,Bridget带来她对DevOps和容器化的深度经验:她是一名运维工程师, 博主 ,演讲者, 明尼阿波利斯DevOps日 的组织者,也是 ”被捕获的DevOps“频道 的主持人。

Bridget的公司, DramaFever ,自2013年10月开始在线上环境使用Docker,那个时候Docker官网上还写着警示语:"不要在线上环境使用Docker"。DramaFever是一家流媒体视频公司,起初播放韩国的肥皂剧,现在给 docclub.com shudder.com 提供额外的视频服务。目前有来自70个内容提供商的15000集电视剧,将近2000万的观看者。高峰时刻,公司要处理来自不同的终端每秒上万次的请求--观看者会经常在节目中间切换终端设备。

为了能够满足上述需要且提供好的用户体验,DramaFever将原先单体的Python应用拆分成了微服务。整个团队在AWS上面运行服务,主网站使用Python,微服务用Go语言。DramaFever依赖Docker来提供持续的开发和部署。

在线上环境改用Docker的过程中,Bridget和她的团队学到了很多教训。下面五个主要的经验,是她在OSCON上分享的。

1. 小心Docker Registry过度负载

DramaFever开始它的容器旅程之时,Docker还没有私有的Registry,但是他们对这点很不满意:Registry在Docker中成为不被控制的单点故障源。DramaFever网站当时依赖于Jenkins机器上部署的单个Registry服务器,可是,当多于20个机器需要使用时,Registry就出故障了。现在DramaFever的每台 EC2 机器(甚至笔记本)上都会运行着一个私有的registry容器,并辅以 AWS S3 作存储。这个解决方案不需要占用很多的资源,而且能解决机器扩充的瓶颈。

2.编制自己的基础镜像

为了保证Docker的镜像是最新的,DramaFever的运维团队每周都会尝试更新“基础镜像”,包括不频繁的依赖变化,比如Ubuntu包依赖或者Python的依赖文件等等。其他的部分都是基于这些镜像,所以启动会非常快。

3.避免有问题的线上推送

一定要确保没有人知道在线上环境能够执行  docker push  命令的账号和密码。我们要保证这些命令只会在Jenkins服务器触发。这样可以避免在没有其他人在场的情况下,发生有问题的线上环境推送。

4.记得清理

容器和镜像都会占用大量的硬盘空间。如果Docker源码区空间被用光,“非常非常糟糕的情况就会发生,甚至会导致硬盘的损坏”,Bridget解释道。她建议每天执行一个脚本来移除停掉且无标识的容器和镜像。

5.注意你的系统时间

AWS S3服务对你的系统时间非常在意。不幸的是,尽管 boot2docker 这款应用可以让Docker运行在Windows和MacOS环境,但如果你的笔记本开始休眠,这个应用将不能正常工作,因为虚拟机里的系统时钟会停滞。这时,任何AWS API请求会得到RequestTimeTooSkewed的错误。为了解决这个问题,所有DramaFever的工具都包含这行代码:
` boot2docker ssh sudo date --set \"$(env TZ=UTC date '+%F %H:%M:%S')\"

这是一个已知的 问题 ,boot2docker正在修正。

Bridget的观点对于正在考虑线上使用Docker的人来说,非常有价值。你可以浏览一下她的 演讲稿 ,读读她的 博客文章

其中最重要的是,虽然Docker很伟大,不过也没那么神奇。容器提供了一些非常酷的且引人注目的优点,但是就如同任何新技术一样,Docker需要我们尽职研究,以确保它会正常工作,并满足特定环境的需求。

Tori Wieldt是New Relic的攻城狮激励师,她写博客,在New Relic的用户组演讲,并给New Relic开发者提供建议和培训。之前她一直在科技界,是一名系统管理员,技术作家和销售。
原文链接:5 Real-World Docker Tips From OSCON's Most Popular Session(翻译:Henry Huang)

===================================
译者介绍
Henry Huang,目前供职于趋势科技 Trend Micro(南京),负责集群运维的工作。

原文发布时间为: 2015-08-25
本文作者:henrysher
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:OSCON上最受欢迎的Docker演讲
目录
相关文章
|
7天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
38 5
|
2天前
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
18天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
18天前
|
NoSQL 应用服务中间件 Redis
Docker跨宿主机容器通信-通过网络跨宿主机互联
这篇文章介绍了Docker容器跨宿主机通信的实现方法,包括Docker的四种网络模式(host、none、container、bridge)以及如何通过修改网络配置和添加路由规则来实现不同宿主机上的容器之间的互联。
55 0
Docker跨宿主机容器通信-通过网络跨宿主机互联
|
18天前
|
应用服务中间件 nginx Docker
Docker同一台宿主机容器通信-通过容器名称互联
本文详细介绍了如何通过容器名称实现同一宿主机上容器间的互联,并提供了实战案例。首先,文章解释了容器间通过自定义名称访问的原理,随后演示了创建并连接Tomcat与Nginx容器的具体步骤。此外,还讨论了配置中可能出现的问题及解决方案,包括避免硬编码IP地址和使用自定义容器别名来增强系统的灵活性与可维护性。通过这些实践,展示了如何高效地配置容器间通信,确保服务稳定可靠。
23 1
Docker同一台宿主机容器通信-通过容器名称互联
|
2天前
|
运维 Ubuntu Linux
深入理解并实践Docker容器化技术
深入理解并实践Docker容器化技术
21 6
|
7天前
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。
|
8天前
|
Cloud Native 持续交付 Docker
探索Docker容器化技术及其在软件开发中的应用
探索Docker容器化技术及其在软件开发中的应用
17 7
|
8天前
|
存储 虚拟化 开发者
深入理解Docker容器化技术
深入理解Docker容器化技术
36 6