阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

走向 Docker

190次阅读
没有评论

共计 2111 个字符,预计需要花费 6 分钟才能阅读完成。

走向 Docker

[TL;DR] 这是系列的第一篇文章,这系列讲述了我的公司如何把基础服务从 PaaS 迁移到 Docker 上。如果你愿意,你可以直接跳过介绍(这篇文章)直接看技术相关的话题(链接在页面的底部)。


上个月,我一直在折腾开发环境。这是我个人故事和经验,关于尝试用 Docker 简化 Rails 应用的部署过程。

当我在 2012 年创建我的公司 – Touchware 时,我还是一个独立开发者。很多事情很小,不复杂,他们不需要很多维护,他们也不需要部署到很多机器上。经过过去一年的发展,我们成长了很多(我们现在是是拥有 10 个人的团队)而且我们的服务端的程序和 API 无论在范围和规模方面都有增长。

 

第 1 步 – Heroku

我们还是个小公司,我们需要让事情运行地尽可能平稳。当我们寻找可行的解决方案时,我们打算坚持用那些可以帮助我们减轻对硬件依赖负担的工具。由于我们主要开发 Rails 应用,而 Heroku 对 RoR、常用的数据库和缓存(Postgres/Mongo/Redis 等)有很好的支持,最明智的选择就是用 Heroku。我们就是这样做的。

Heroku 有很好的技术支持和文档,使得部署非常轻松。唯一的问题是,当你处于起步阶段,你需要很多开销。这不是最好的选择,真的。

 

第 2 步 – Dokku

为了尝试并降低成本,我们决定试试 Dokku。Dokku, 引用 GitHub 上的一句话

Docker 驱动的 mini-Heroku,只用了一百来行的 bash 脚本

我们启用的 DigitalOcean 上的很多台机器,都预装了 Dokku。Dokku 非常像 Heroku,但是当你有复杂的项目需要调整配置参数或者是需要特殊的依赖时,它就不能胜任了。我们有一个应用,它需要对图片进行多次转换,我们把我们 Rails 应用的托管到基于 Dokku 的 Docker 容器,但是无法安装一个适合版本的 imagemagick 到里面。尽管我们还有很多应用运行在 Dokku 上,但我们还是不得不把一些迁移回 Heroku。

 

第 3 步 – Docker

几个月前,由于开发环境和生产环境的问题重新出现,我决定试试 Docker。简单来说,Docker 让开发者容器化应用、简化部署。由于一个 Docker 容器本质上已经包含项目运行所需要的所有依赖,只要它能在你的笔记本上运行地很好,你就能确保它将也能在任何一个别的远程服务器的生产环境上运行,包括 Amazon 的 EC2 和 DigitalOcean 上的 VPS。

就我个人的看法来说,Docker 特别有意思的原因是:

  • 它促进了模块化和关注点分离:你只需要去考虑应用的逻辑部分(负载均衡:1 个容器;数据库:1 个容器;web 服务器:1 个容器);
  • 在部署的配置上非常灵活:容器可以被部署在各种硬件上,也可以容易地重新部署在不同的服务器和不同的提供商;
  • 它允许非常细粒度地优化应用的运行环境:你可以利用你的容器来创建镜像,所以你有很多选择来配置环境。

它也有一些缺点:

  • 它的学习曲线非常的陡峭(这是从一个软件开发者的角度来看,而不是经验丰富的运维人员);
  • 搭建环境不简单,尤其是还需要自己搭建一个私有的 registry/repository (后面有关于它的详细内容)。

下面是一些提示。这个系列的最后一周,我将把他们和一些新的放在一起。


在下面的文章中,我们将看到如何建立一个半自动化的基于 Docker 的部署系统。

  • 建立私有的 Docker registry  http://www.linuxidc.com/Linux/2015-05/117000.htm
  • 配置 Rails 应用的半自动化话部署

CentOS 6/ 7 系列安装 Docker http://www.linuxidc.com/Linux/2014-07/104768.htm 

Docker 的搭建 Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

在 Ubuntu Trusty 14.04 (LTS) (64-bit) 安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Docker 的详细介绍 :请点这里
Docker 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-05/116999.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2111字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中