位置: 编程技术 - 正文

在生产环境如何使用Docker部署应用(生产环境如何对linux进行合理分区)

编辑:rootadmin

推荐整理分享在生产环境如何使用Docker部署应用(生产环境如何对linux进行合理分区),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:生产环境如何解决跨域,生产环境如何定位oom,生产环境如何部署flask项目,在生产环境如何保护自己,生产环境如何测试,在生产环境如何检测文件上传漏洞,在生产环境如何分析,在生产环境如何保护自己,内容如对您有帮助,希望把文章链接给更多的朋友!

Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程。作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产环境使用Docker部署应用程序的一个实践。

Docker是现在开发应用程序的不错选择;因为对于一个研发组来说,部署一个应用再也不用像以前那样繁琐的修改、设置配置文件了;因为对于Docker来说它“屏蔽”了应用程序的运行环境,不管你使用Mac、Linux还是Windows都能用相同的方式运行。

但是,当你使用Docker将应用部署到生产环境时,你会觉得Docker还是有些“弱”,至少从Ruby On Rails(ROR)的角度出发是这样的。当我查找与测试了很多不同的部署方法与Docker镜像后发现:确实没有一个确切而且标准的部署方案。在这篇文章中我会分享一种生产环境部署ROR应用的最佳实践。

标准

在实际操作之前,我们列举生产环境部署应用的标准:

1.易于使用:部署应用本身应该十分简单,不然部署新程序的过程会变得十分“恐怖”。

2.零服务中断:让我们面对它——零服务中断部署ROR应用程序已经成为当今的标准。

3.自动化部署:我更习惯把代码推送到代码仓库,然后使用Codeship这样的工具自动测试,测试通过后自动将代码部署到生产环境的服务器。我希望Docker能完成相同的工作。 ## 操作就像之前我说过的,我希望部署过程越简单越好。如果你看过Docker:Part4这个视频,可能对以下命令有所熟悉,它启动了一个叫db的容器(跑postgres数据库),之后又启动了一个叫web的容器,最后将容器“web”跟容器“db”连接起来。

当然如果你照着这么做来部署程序,当你敲了很多次这样的命令后,而且保证不遗漏的敲了很多次这种命令后,你会发现这是个“坑爹的”噩梦。这就是为什么会有Fig的原因。

FIG

如果你用Dockerfile来定义如何生成你的容器,那么Fig则可以帮你定义整个容器的运行框架。Fig将“添加数据卷(add volumes)”、“连接容器”(link container)与“映射端口”等操作都封装到一个YAML的描述文件中;如同前面提到的CodeTV中描述的那个操作在Fig中简化成如下形式:

我在YAML中定义了两个容器:web与db;容器web生成自当前文件夹下的Dockerfile,向外暴露了号端口,同时链接到了容器db。容器db生成自DockerHub的PostgreSQL镜像,向外暴露号端口。使用此YAML配置文件,fig可以用以下命令生成容器,然后依照配置文件的意图启动它们。

在生产环境如何使用Docker部署应用(生产环境如何对linux进行合理分区)

Fig会先启动被链接的容器db,这样容器web就不至于连不上数据库。-d参数表示以后台运行的方式启动容器,这样可以保证用户登出操作系统后,容器任然在运行。您可以登录Fig的官方网站获取更多的配置信息。

部署

现在我们可以很容易的启动一个Docker容器,但是怎么在生产环境下部署Docker容器呢?如果在生产环境下安装了Fig与Docker,我们所有要做的就是克隆之前的容器镜像,然后用相同的fig命令来启动容器。但是,现在的问题是如何更新线上运行的容器。

不幸的是,Fig可以非常优雅的启动一个容器,但是它并不擅长更新并重启服务。当然,你可以在代码仓库拉取程序的更新,然后重新运行以上的fig命令来达到这个目的;但是,在容器在更新代码,重新启动的过程中,就不能对外提供服务了。为了应对这种情况,我们使用原生的Docker命令,并引入Nginx做反向代理(注:软负载)来解决这个问题。

我们首先把容器监听的端口修改掉,因为Nginx需要监听号端口。我们这么修改:

通过修改Fig的配置文件,我们的web容器修改成监听号端口。而Nginx要配置成与端口的负载均衡;所以Nginx的配置如下:

重启Nginx后,Nginx就开始在与号端口之间做反向代理(软负载);当其中任何一个端口失效后,Nginx将请求自动转发到另一个,直到失效后的端口恢复。这样,我们就能从Git中拉取更新,然后运行下面的命令将其启动:

当我们确定号端口的web1容器启动并服务正常后,我们就可以停止号端口的服务并开始为号端口服务进行更新了。我推荐使用原生的docker命令而不使用Fig来完成这个工作,因为这样可以避免干扰到正在运行的db容器(注:作者可能指的是之前写好的YAML,里面包含了启动db容器的配置)

我们可以用上述方法创建很多个web容器,只要保证它们占用的端口与容器名不同即可;同时使用Nginx在它们前端做负载即可实现不掉线的程序升级。

自动化

那么问题又来了,怎么将上述的更新流程自动化运行呢?有两个方式可以达到:

1.将容器更新、启停、切换等操作封装到一个单一的脚本中,这个脚本可以加入到传统的上线流程(注:新代码拉取,自动测试,自动部署的流程,作者称之为deployment pipeline)之后执行;

2.另一种方式是,使用类似Consul或者etcd等的发现服务来管理容器的更新,启停,与发现;这会更加“高大上”。

所以,使用Docker在生产环境中部署服务不像你想象中那么容易。我推荐大家试试上面所说的方法;同时分享你自己的实践经验给大家,这会帮助大家一同使用Docker。Docker还是个很年轻的产品,同时又是个非常热门的产品,它肯定会在未来不断的演化升级。

VMware虚拟机安装与使用方法 今天在逛博客的时候,突然看到某位友友的博客上提到了虚拟机技术,突然一时兴起,便尝试接触虚拟机了!其实在以前自己就听到过很多关于本地电

Docker发生了变化也使整个容器生态圈发生大地震 最近半年,围绕Docker的安全、存储、编排等发生了许多变化,这些变化一方面使得用户使用Docker更加方便,一方面也使得整个容器生态圈发生了大地震

安装最新的XFCE桌面的教程 导读Xfce是一款针对Linux系统的现代化轻型开源桌面环境,它在其他的类Unix系统上,比如MacOSX、Solaries、*BSD以及其它几种上也能工作得很好。它非常快并

标签: 生产环境如何对linux进行合理分区

本文链接地址:https://www.jiuchutong.com/biancheng/354048.html 转载请保留说明!

上一篇:卡巴斯基推出新的安全操作系统:Kaspersky OS(卡巴斯基2019)

下一篇:VMware虚拟机安装与使用方法(VMware虚拟机安装miui14)

  • 企业所得税会计分录怎么做
  • 金税四期税务机关一局式
  • 耕地占用税的征收标准
  • 借转股意思
  • 收据怎么粘贴在费用报销单上
  • 全额工资是到手工资吗
  • 专票遗失后可以作废吗
  • 销售商品收到银行汇票计入什么科目
  • 应税劳务和应税服务不合理列支的有哪些
  • 长期借款借方登记归还的本金和利息
  • 税金及附加怎么计提
  • 货物保管不善交来的罚款账务处理?
  • 利息保障倍数为负数,是偿债能力弱的表现
  • 补计提上一年度费用
  • 广告服务怎么做分录
  • 在汇兑结算方式中汇入行对流行代取的款项应先转入
  • 小规模公司可以贷款吗
  • 季度所得税报表季初资产总额怎么填
  • 公司聚餐一定要去吗
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 对公提回贷算收入吗
  • 汽车发票金额怎么算
  • 预付款增加说明什么
  • 金税盘发票报送状态未报送
  • 建筑企业所得税怎么算举例说明
  • 材料采购差异的影响因素
  • 对数据文件操作,进行数据记录的交换都要经过
  • 增值税税率为零的有哪些项目
  • Dardanup郡的小矮人村,澳大利亚 (© Amanda Hughes/Alamy)
  • 最轻便的蓝光刻录机品牌
  • 房产自用改出租房产税如何申报
  • 总分机构分摊比例如何确定
  • 车道线检测模型
  • 公司买的公文包会计怎么做
  • 网络用语屠夫
  • 10年未被强制修复!黑客利用Windows旧漏洞攻击通信公司并分发恶意文件
  • 身份证校验python代码
  • yii2.0框架
  • 增票的纳税人识别号是啥
  • 企业收到发票冲销怎么办
  • 所得税时间性差异
  • 毛利的计算公式为
  • db2udb
  • 税率减按1.5%计算是什么意思
  • 发票作废是什么样的
  • 理财收益缴纳增值税吗
  • 什么经营范围是营业执照
  • 建筑安装的扩展性是指
  • 非营利组织增值税怎么处理
  • 福利费的进项税怎么做账
  • 红冲更正的正确分录
  • 软件研发的整个流程
  • 应付账款调整科目余额分录
  • 会计原材料的账怎么记账
  • 承兑汇票需要做账吗
  • 车间不生产折旧计提放哪里
  • 暂估收入怎么做分录
  • 公司注销记账凭证还有用吗
  • 财税讲座视频
  • sql server Bulk Insert命令详细
  • cmd提示符基础知识
  • alpine安装apt
  • 黑苹果驱动说明
  • Ubuntu系统安装软件
  • win7系统共享打印机设置方法
  • 安装ubuntu后无法进入windows
  • win10周年版
  • win10开始菜单什么样子
  • win8运行速度慢怎么办
  • win10系统自带虚拟机怎么用
  • node.js操作文件
  • 全面详细的体检
  • android基于linux还是unix
  • css实现无缝滚动
  • 国家辽宁税务总局
  • 浙江纳税百强2020
  • 上海税务办事大厅电话
  • 地税局属于国家公务员吗
  • 发票校验码不清楚
  • 城市维护建设税属于什么科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设