为了账号安全,请及时绑定邮箱和手机立即绑定

阿里云docker部署实践

标签:
Docker

docker可以很方便的保持环境一致性,让创业不需要运维了,后端工程师搭建部署整套环境即可。本文以阿里云为例,讲解如何部署一个web/api项目。

首先根据项目需求选择数据库,最简单的是mysql,但不支持LBS(比如附近的人),如果需要LBS,则首选pgsql。如果需要属性无限增加(比如玛雅(maya.io)是对商品进行数据化,属性是未知的),则不能用关系型数据库,需要用JSON这种结构化数据结构,比如mongoDB。考虑到后端服务器要和数据库在一个区,这样网速最快,所以先看看阿里云的区域:

产品\区域华东1杭州华东2上海华北1青岛华北2北京华南1深圳
mongodbBBAB、CA
ECSBEABCBABCAB
ECS系列 III Broadwell
docker集群BEABCBABCAB
docker镜像仓库

可以得到这些结论:

  • mongoDB的可选区域比服务器少,所以要先买数据库,再买相同区的服务器。比如华北1的数据库在A区,而服务器在B区,有点尴尬。

  • 上海的ECS最先进,但没有docker镜像,而杭州有docker镜像,部署会快一点(实测影响不大)。

注意:不要事先购买负载均衡,因为创建docker集群时会自动购买绑定。

购买和部署顺序:

  1. 购买数据库

  2. 购买ECS服务器(包年包月比按量付费便宜),带宽最低即可(因为会走负载均衡的带宽)

  3. 容器服务-镜像:新建镜像,选择你的github项目,手动构建一次

  4. 容器服务-集群:创建集群(选“不创建节点”和“自动创建负载均衡”)

  5. 容器服务-集群:更多-添加已有实例

  6. 容器服务-应用:创建应用,web路由规则要填域名

  7. 测试:查看负载均衡的IP,本机设置hosts进行访问

  8. 云解析

  9. 配置https:请看《阿里云如何开启强制HTTPS》

  10. www和根域名二选一:todo

  11. 容器服务-应用-点名字进入“详情”:创建触发器,复制触发器链接

  12. 容器服务-镜像-镜像仓库控制台-管理-webhook:添加一条

第7步特别注意:阿里云的负载均衡不是80到80,而是80转向ECS的9080,ECS的routing服务再把9080转向docker的80。

访问负载均衡的IP会看到503错误页面,让人误解,以为docker没有正常工作……其实没问题,要用域名访问(需要设置本机hosts进行测试)。如图:

webp

阿里云docker禁止IP访问,会返回503错误

webp

阿里云docker需要设置本机hosts,使用域名进行测试

如果配hosts可以访问,那就可以设置域名解析,上线了。

如果你需要提交git时自动上线,则需要操作11和12步,如图:

webp

容器服务-应用-点名字进入“详情”:创建触发器

webp

容器服务-镜像-镜像仓库控制台-管理-webhook:添加一条

实际效果:玛雅(https://maya.io/)首页加载时间为1秒以内。如图:

webp

玛雅部署在阿里云docker上,首页加载时间为1秒以内

还有个坑:修改配置时,一定要使用“容器服务-应用-变更配置”,而不要使用“容器服务-服务-变更配置”,因为后者会被前者覆盖。

             




作者:sinkcup
链接:https://www.jianshu.com/p/03e2b9305e27


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消