201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

通过容器服务一分钟创建WordPress博客

目标

  1. 熟悉Docker的基本知识和容器服务的基本功能
  2. 在容器服务中成功通过一个编排模板创建WordPress博客

准备工作

步骤

  1. 进入容器服务控制台
  2. 创建第一个集群
  3. 搜索并查看WordPress镜像
  4. 选择模板创建应用

以下是具体的操作步骤

1.进入容器服务控制台

1.1 进入容器服务产品介绍页面

在阿里云首页www.aliyun.com的导航"产品"下浮列表中,选择"弹性计算"分类下的"容器服务(公测中)",如下图:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

点击后进入产品介绍页面:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

1.2 申请公测

点击"获取使用资格"(首次进入需要申请公测资格)或者直接进入"管理控制台"

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

1.3 查看指南

进入容器服务的控制台。点击左侧的"指南",进入介绍页面,了解容器服务的基本概念.

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

如有有更详细的了解,可以查看页面最下方的文档及帮助

2. 创建第一个集群

2.1 进入创建集群页面

点击上图中的"创建集群"链接

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

2.2 设置集群配置

填写集群名称:yunqi-test2

选择地域(杭州)和可用区(杭州可用区D)

选择操作系统:Ubuntu 14.04 64 位

选择网络类型:经典网络

容器服务为每个集群会默认创建一个按量计费的公网SLB,用于外部访问。

容器服务创建的云服务器和负载均衡目前均为按量计费。

2.3 设置实例配置

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

选择实例规格:2核4GB(ecs.s2.large)

选择实例数量:1

选择数据盘容量:20G (会被挂载到/var/lib/docker目录,用于Docker镜像和容器的存储。)

设置云服务器密码

2.4 创建集群并查看日志

点击"创建集群"按钮,自动跳转到集群列表页面,集群的状态显示"初始化中"。

点击"查看日志",查看创建集群的过程日志

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

等待集群状态变化为"运行中"

ps:如果集群创建失败,有可能是当前选择的地域和可用区没有库存,请换可用区或云服务器规格尝试。

2.5 查看节点信息

点击集群名称,展开节点列表信息

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

点击ip地址(120.55.183.83)的链接,进入节点页面

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

这个页面描述了当前节点下的容器列表,其中带"system"标签的容器代表是容器服务的系统容器,用来管理每台云服务器:

acs-agent:用于管理docker daemon

tunnel-agent:用于管理容器服务和云服务器的通信

acsrouting_routing:用于管理路由转发

点击左侧的节点监控,查看监控信息

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

3. 搜索并查看WordPress镜像

3.1 浏览镜像列表

点击左侧菜单"镜像和模板"里的"镜像",如下图

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

常用镜像:是容器服务挑选的一些最常用的镜像列表

Docker官方镜像:是容器服务从Docker Hub同步过来的Docker官方镜像列表

阿里云镜像:是阿里云提供的容器Hub的镜像列表,按照下载量排序

3.2 搜索一个镜像

在右上角的搜索框,搜索wordpress

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

3.3 查看镜像详情

点击acs-sample/wordpress镜像的"详情"链接,跳转到阿里云容器hub的镜像详情页面

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

右侧的"版本信息"展示了该镜像的tag列表

这里介绍下镜像的几个概念:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

3.4 查看镜像对应的dockerfile

点击tag:yunqi旁的dockerfile链接,进入github页面:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

后续的实例编排模板会使用这个镜像。这里介绍下dockerfile的几个相关语法:

    FROM wordpress                      
    #基础镜像
    RUN echo Asia/Shanghai > /etc/timezone && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    COPY entry.sh /entry.sh            
    RUN chmod a+x /entry.sh
    COPY  aliyun-oss-support-2.3.2/  /var/www/html/wp-content/plugins/aliyun-oss-support-2.3.2/
    #复制外部文件到镜像里面。这里是复制oss的plugin。          
    ENTRYPOINT ["/entry.sh"]               
    #入口脚本
    CMD ["apache2-foreground"]              
    #启动参数

4 选择模板创建应用

4.1 选择示例编排模板

点击控制台左侧导航的"镜像与模板"的"编排模板"

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

"示例编排"下有容器服务推荐的一些编排模板

"我的编排"管理了用户自己创建的编排模板

选择示例模板yunqi_wordpress(后续会选择这个模板创建,也可以按照自己的需求修改),点击"详情"查看

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

4.2 编排模板语法讲解

编排模板是遵循docker compose的yml格式.

上面的模板描述了3个服务,分别是wordpress、mysql和logtail。 (后续会将logtail作为系统容器提供,敬请期待。)

这里对compose的语法简单讲解:

    wordpress:
        image: registry.aliyuncs.com/acs-sample/wordpress:yunqi   
        #代表这个服务的镜像
        ports:                                                    
            - 80
            #代表容器会暴露80端口
        volumes:
            - /acs/log/wordpress/:/var/log/                       
           #这里将容器内的目录/var/log/,映射到宿主机的/acs/log/wordpress/目录。(可供日志服务去采集)
        labels:                                                   
        #docker的标准能力  容器服务也提供了一些增值的能力(以aliyun开头的标签)
            aliyun.routing.port_80: wordpress                     
            #代表提供了路由能力,前端的域名是wordpress.<cluster_id>.<region_id>.alicontainer.com,并绑定到容器的端口8080
            aliyun.probe.url: 'http://container/license.txt'      
            #代表了该镜像起来后的健康型检查URL是容器的内部地址:http://localhost/license.txt
            aliyun.probe.initial_delay_seconds: '5'               
            #代表了在容器启动后延迟几秒开始健康检查
            aliyun.scale: '1'                                     
            #代表了该镜像需要启动1个容器
            aliyun.depends: logtail                               
            #代表这个容器会等logtail启动之后再启动
            aliyun.latest_image: true                             
            #代表会拉取最新的镜像(对于tag不变而内容变化的镜像)
        restart: always                                           
        #代表容器挂了会自动重启
        links:                                                   
            - mysql
            #代表wordpress这个服务会连接到mysql,可以通过环境变量mysql.MYSQL_ROOT_PASSWORD获取密码
    mysql:
        image: mysql
        ports:
            - 80
        labels:
            aliyun.scale: "1"
        environment:
            - MYSQL_ROOT_PASSWORD=password         

更详细的解释请参见:https://help.aliyun.com/document_detail/containerservice/compose/summary.html

4.3 创建应用

点击右上角"创建应用"按钮

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

默认应用名为:yunqi_wordpress-application-default(可修改)

设置应用版本:1.0 (可自定义)

选择部署集群:yuqi-test2

点击"创建并部署应用",自动跳转到"应用列表"页面:
201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

当前应用正在创建中,可查看应用的事件直至应用状态至"就绪"

ps:容器服务的应用对应一个compose编排模板,可包含一个或多个服务。(在yunqi-wordpress示例模板中,我们创建的这个应用包含了三个服务,每个服务对应一个镜像)

4.4 查看应用状态

在应用列表里点击"yunqi_wordpress-application-default"的链接,进入该应用的详情页。

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

点击服务列表,选择服务"wordpress",进入服务的详情页:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

4.5 查看WordPress应用

点击上图的访问端点的地址,即可访问wordpress的页面:

201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

选择语言:简体中文,点击继续
201601上海云栖大会Workshop - 通过容器服务一分钟创建Wordpress博客

设置用户名、密码和邮箱,点击"安装WordPress",后续再登录即安装成功!

上一篇:689期 | 巨无霸的软肋在哪里? - 如何在一个已经拥有巨大存量的强大敌人身边生存下来。


下一篇:题目 1426: 蓝桥杯历届试题-九宫重排