容器服务支持Docker Compose编排模板来描述多容器应用。
作用:
用于描述一个完整的应用,该应用可由好多个服务组成。例如一个web,他是由nginx/httpd+php+mysql组成。甚至可以根据服务量启动两个甚至更多的容器。
能力:
容器服务支持通过编排模板文件,自动化地部署和管理一个容器应用。
编排模板文件使用的标签兼容大部分 Docker Compose 1.5.x 到 1.7.x 版本实现的标签。有关具体兼容的标签,参见 标签说明。
编排模板文件也支持 Compose V1 和 V2 两种不同版本的模板格式。更多详细信息,参见 文档。
容器服务也在社区版本之上提供了很多扩展能力:
与社区的 Docker Compose 和 Swarm 不同,阿里云容器服务支持跨节点的容器连接(link),所以您可以直接将 Docker Compose 模板描述的应用部署到分布式集群上来提供高可用性和可伸缩性。
容器服务也在社区 Compose 模板描述的基础上提供了一系列扩展来简化 Web、微服务应用的部署和运维。这就是容器里的标签
直接从一个例子看
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