Docker 初体验--顺带吐槽下 Daocloud 的文档
Docker 初体验--顺带吐槽下 Daocloud 的文档
最近在学 flask,想自己写个博客练手.遇到的困难远比自己想象得多,
- 不懂前端,看了阵 bootstrap 总算学会了扒皮,
- SQL 和数据库设计,例如 Tag 不会处理,后来就是直接看 Wordpress 和 Typecho 的数据库表,直接抄抄慢慢理解吧.
- 最头疼的还是运行环境问题.开始是在 win 下写代码,后来装了 Ubuntu,黑苹果.折腾了好久.
国内几家大厂情况:
以下都是说的都是练习环境,最低配置.
- 阿里云 ACE 价格还算可以,后来被砍了. ECS 最低配置一年都要 600 多了.
- 腾讯云 费用基本上阿里云差不多,学习用接受不了.
- 百度云 口碑不如阿里,速度很快,备案支持好.2 毛钱 1 天超值.文档较少,按书上写的 demo 不支持参数启动.比如 runserver 还在国内的 PAAS 基本上死光的情况下,对 BAE 没什么信心!
- SAE,JAE 已死,有事烧纸.
- 网易蜂巢 出得晚,动作慢,不支持备案,官方微信群都是讨论免流的(利用网易云音乐的套餐包). 是 1 元 /天,个人感觉不是很靠谱.
遇到 docker
今天逛 V2 看到 /t/274121 有人推荐 Daocloud,听说免费就去折腾下看看. 完全没接触过 Docker,只知道它的名字叫容器,是轻量虚拟化方案. 注册之后登陆控制台,一直是个吃豆人,后来发现是 DaoVoice 脚本导致的, 建议处理下吧.
感觉文档对新手不够友好
反正是进来了,按照我的想象应该就是找个容器点几下就能运行了才对.
看到有个镜像仓库,我想这应该就是我这种菜鸟要的!
结果发现基础系统环境或者是 Python 相关都不能部署到 daocloud!
我并不清楚部署到主机是什么意思!

左点右点在 DaoCloud 的 Github 看到一些 Deomo,fork 之后就试着代码部署.
执行节点我选的国内,想着国内访问速度会好些.
等了很久还是没部署好,去吃个饭回来说是超时了.
我的内心是崩溃的.
不知道怎么办才好
我最后的选择不是去看 DaoCloud 的文档,去看 Docker 的入门.
发现问题比想象得简单得多
基本上只要几分钟你就能知道怎么回事,我在本地很快部署了自己的镜像.
也找到了线上部署失败的原因
pull 一个 ubuntu 镜像之后进 shell 安装各种需要的东西.发现速度很慢.
Ubuntu 的 apt 源是国外的.
Running in 6be8ad6cb255
Ign http://archive.ubuntu.com trusty InRelease Get:1 http://archive.ubuntu.com trusty-updates InRelease
看完入门文档然后自己写了一个 Dockerfile,顺利定制了第一个容器.
发现是真的非常简单,为什么 DaoCloud 连号称做了那么多工作,还没有一页 Docker 入门教程来得实用.
FROM ubuntu
MAINTAINER pimin "xxxx@qq.com"
RUN sed -i "s/archive.ubuntu.com/cn.archive.ubuntu.com/g" /etc/apt/sources.list
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["app.py"]
代码比较简单,就是从 Ubuntu 镜像创建一个容器,先更换 Ubuntu 源为国内源,然后安装 Python,pip
再用 pip 安装 requirements.txt 内指定的依赖.
最后运行 flask 的最小 demo.
然后代码 push 到 github 之后通过 DaoCloud 的代码构建,只要 3 分钟!!
我当时是震惊的! DaoCloud 为什么不能写一行替换替换为国内源的代码.
在我看来那个什么镜像加速都没有改一下源来得实用.
如果你代码构建做得好,像我这样新手一次就就可以代码构建成功!
这样的失败体验很有可能把我们挡在门外

项目地址在 https://github.com/28sui/dao-flask
小结
Docker 和 github 结合确实是非常方便的方案,push 之后自动重新部署.
不清楚如果是集群的话重新部署需不需要下线,会不会自动调度部署顺序.
感觉定制性非常高!
有疑问的是
1.安全性,demo 只暴露了一个端口,按照传统思路来用 docker 会不会增加风险?
2.动态调整问题.通过 Dockerfile 做调整都要重新部署.对于我这样的新手学习来说,不如 vps 之类来得方便.
如果我按 VPS 那样使用,SSH 进去做的修改重启之后就会丢失.我知道我应该在本地先调试好再 push.
3.如果我有几个服务,是不是分几个容器更靠谱一些?这样运行成本是不是就高很多.
这样看来 Daocloud 的免费基本上也就是练习用.专业版只是开了功能,对于资源使用额度没有提升.
入门级的话,成本上升是不是太快了?
比阿里云这些有价格优势么?
4.免费只有 2x 资源,确实是太小了,绑定微信有 3x 才算能用.2x 运行环境,1x 数据库.
不过有效期只有半年.总体来说并不是一个长期使用的方案.
当然作为学习环境 50M 的数据库是完全足够了. 暂时就入这个坑吧!
本文由 vps网友提供,转载请注明出处
本文链接: https://www.vpsvsvps.com/discuss/a/1676471751648743424.html
