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

学习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

你可能感兴趣的:(番外篇:阿里云提供的容器服务)