容器服务支持 Docker Compose 编排模板来描述多容器应用。

编排模板允许您描述一个完整的应用,该应用可以由许多个服务组成。例如:一个门户网站应用,由一个 Nginx 服务、一个 Web 服务和一个数据库服务组成。

一个服务可能会有多个容器实例,所有容器实例的配置保持一致。例如:上述应用中的 Web 服务,就可以根据访问量需要启动两个甚至更多的容器。

能力

容器服务支持通过编排模板文件,自动化地部署和管理一个应用。

编排模板文件使用的标签兼容大部分 Docker Compose V1 和 V2 版本实现的标签。有关具体兼容的标签,参见标签概览

编排模板文件也支持 Compose V1 和 V2 两种版本的模板格式。更多详细信息,参见 Docker Compose V1Docker Compose V2

容器服务也在社区版本之上提供了很多扩展能力:

  • 与社区的 Docker Compose 和 Swarm 不同,阿里云容器服务支持跨节点的容器连接(link),所以您可以直接将 Docker Compose 模板描述的应用部署到分布式集群上来提供高可用性和可伸缩性。
  • 容器服务也在社区 Compose 模板描述的基础上提供了一系列扩展来简化 Web、微服务应用的部署和运维。更多详细信息,参见标签概览

示例

下面是一个 WordPress 应用,包含了由 WordPress 镜像提供的 Web 服务和 MySQL 镜像提供的 db 服务。

web:
  image: wordpress:4.2
  ports:
    - "80"
  environment:
    - WORDPRESS_AUTH_KEY=changeme
    - WORDPRESS_SECURE_AUTH_KEY=changeme
    - WORDPRESS_LOGGED_IN_KEY=changeme
    - WORDPRESS_NONCE_KEY=changeme
    - WORDPRESS_AUTH_SALT=changeme
    - WORDPRESS_SECURE_AUTH_SALT=changeme
    - WORDPRESS_LOGGED_IN_SALT=changeme
    - WORDPRESS_NONCE_SALT=changeme
  restart: always
  links:
    - db:mysql
  labels: 
    aliyun.log_store_wordpress: stdout
    aliyun.probe.url: http://container/license.txt 
    aliyun.probe.initial_delay_seconds: "10"
    aliyun.routing.port_80: wordpress;http://www.example.com;https://www.nice.com
    aliyun.scale: "3"
db:
  image: mysql:5.6
  environment:
    MYSQL_ROOT_PASSWORD: password
  restart: always
  labels: 
    aliyun.log_store_mysql: stdout