美文网首页
番外篇:阿里云提供的容器服务

番外篇:阿里云提供的容器服务

作者: IvyFan2017 | 来源:发表于2017-08-24 15:21 被阅读0次

    学习docker的参考资料

    1. docker官方网站
    2. 阿里云Amazon EC2 Container Service Google Container Engine

    阿里云应用场景

    文档参考

    1. 基于docker实现微服务,提供敏捷开发
    2. 一键部署机器学习应用
    3. 镜像提供混合云资源,不需在多中云管理控制台中反复切换
    4. 根据业务流量自动对业务扩容/缩容,不需要人工干预

    包括Web应用,微服务架构应用,持续集成和持续交付的场景
    阿里云解决了容器应用整个生命周期中,镜像构建,分发、编排、运维的基础问题;同时提供了和三方服务的接口,用户可以定制、集成自己的流程和方案。

    场景一:创建一个使用Redis的Python应用

    参考

    添加内容:构建镜像并推送到阿里云镜像仓库

    #启动docker
    systemctl start docker 
    
    #1)根据app_useRedis文件夹下的的Dockerfile文件进行构建,命名为myflask
    [root@master app_useRedis]# docker build -t myflask .
    
    #2)通过docker images可以查看到本地新生成的镜像,其中包含下载的python镜像
    myflask             latest              7890ab4bc6d3        17 minutes ago      680.7 MB
    docker.io/python    2.7                 fa8e55b2235d        4 weeks ago         673.1 MB
    
    #3)本地测试镜像(后续有补充,请查看!!):
    docker run -it --rm -p 8080:8080 myflask
    
    #4)打标签
    docker tag 17f82536bbaf registry.cn-hangzhou.aliyuncs.com/ivyfan/myflask:0.2
    
    #5)push到阿里云
    docker push registry.cn-hangzhou.aliyuncs.com/ivyfan/myflask:0.2
    

    添加内容:本地镜像测试
    docker build会将app代码在 build image上进行编译,后产生一个新的镜像,测试的时候由于该实验需要有一个数据库,因此需要添加一个redis的数据库

    #1)下载docker compose
    curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    #2)检查docker compose是否已经安装好了
    docker-c
    #>> docker-compose 完美~
    
    #3)添加执行权限
    chmod a+x /usr/local/bin/docker-compose 
    
    #4)从docker.io/library/redis 中 pull redis数据库
    docker pull redis
    
    #5)让所有服务在后台模式启动
    docker-compose -f [更改为自己的compose文件:flask.yml] up -d
    >>
    Creating appuseredis_redis_1 ... 
    Creating appuseredis_redis_1 ... done
    Creating appuseredis_web_1 ... 
    Creating appuseredis_web_1 ... done
    
    #6)使用docker ps命令来验证应用的容器,和在Docker主机上运行的其他容器
    >>
    070f30834daa        registry.aliyuncs.com/ivyfan/flask   "/bin/sh -c 'python a"   3 seconds ago       Up 1 seconds        0.0.0.0:32768->5000/tcp   appuseredis_web_1
    548307ff115a        redis                                "docker-entrypoint.sh"   4 seconds ago       Up 2 seconds        6379/tcp                  appuseredis_redis_1
    

    解释:此处的 0.0.0.0:32768->5000/tcp,是将docker内的本地127.0.0.1的32768端口映射到虚拟机中的5000端口,使得容器bash内的app应用可以在虚拟机中看到

    1. 为什么容器镜像中build已经包含了redis,还需要再安装redis容器?
      后续的实际操作中需要分配一个redis的容器来当做数据库,build生成的是一个应用(显示一行代码)

    2. 为什么redis没有端口的暴露
      因为实在容器的内部使用,不需要被外界看到

    #7)测试新的镜像, 通过参数-p 8080:
    docker run -it --rm -p 8080:8080 myflask
    docker logs -f appuseredis_web_1
    

    在mac的浏览器下输入:http://192.168.2.234:32768/ 地址为你的虚拟机地址
    在centos的火狐浏览器下输入:172.0.0.1:32768

    #8)停止compose的服务
    docker-compose -f flask.yml stop
    
    #9)再次打开compose,端口变化,但是计数在上次结束的地方继续增加
    docker-compose -f flask.yml start
    

    华丽结束~


    场景二:基于容器技术的DevOps -微信聊天程序实战

    参考

    CICD:continuous integration and continuous delivery

    目的:DevOps将开发、测试和运维三部分紧密连接起来,提供一条从软件开发到质量保障到技术运营的自动化流水线,从而减少资源浪费、提高质量,并将产品快速推向市场。

    1. 利用Docker和对象存储OSS轻松搭建ownCloud专属网盘

    查看消费记录
    释放实例

    您应按以下步骤立即释放实例。

    登录云服务器管理控制台(https://ecs.console.aliyun.com/?spm=5176.app25442.3.1.VSfs9C#/home)。
    单击左侧导航栏中的 实例。
    选择实例所在的地域。
    选择需要实例,在 操作 列中,单击 更多 > 释放设置。
    在弹出的窗口中,选择 立即释放。
    单击 下一步,然后单击 确认。
    输入您收到的手机验证码,然后单击 确认。

    费用总结:小时监测,按使用量付费
    负载均衡SLB:0.02
    云服务器:0.67
    弹性公网IP:0.02

    相关文章

      网友评论

          本文标题:番外篇:阿里云提供的容器服务

          本文链接:https://www.haomeiwen.com/subject/htdedxtx.html