学习docker的参考资料
阿里云应用场景
- 基于docker实现微服务,提供敏捷开发
- 一键部署机器学习应用
- 镜像提供混合云资源,不需在多中云管理控制台中反复切换
- 根据业务流量自动对业务扩容/缩容,不需要人工干预
包括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应用可以在虚拟机中看到
为什么容器镜像中build已经包含了redis,还需要再安装redis容器?
后续的实际操作中需要分配一个redis的容器来当做数据库,build生成的是一个应用(显示一行代码)为什么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将开发、测试和运维三部分紧密连接起来,提供一条从软件开发到质量保障到技术运营的自动化流水线,从而减少资源浪费、提高质量,并将产品快速推向市场。
- 利用Docker和对象存储OSS轻松搭建ownCloud专属网盘
您应按以下步骤立即释放实例。
登录云服务器管理控制台(https://ecs.console.aliyun.com/?spm=5176.app25442.3.1.VSfs9C#/home)。
单击左侧导航栏中的 实例。
选择实例所在的地域。
选择需要实例,在 操作 列中,单击 更多 > 释放设置。
在弹出的窗口中,选择 立即释放。
单击 下一步,然后单击 确认。
输入您收到的手机验证码,然后单击 确认。
费用总结:小时监测,按使用量付费
负载均衡SLB:0.02
云服务器:0.67
弹性公网IP:0.02