全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
容器服务

使用 OSSFS 数据卷实现 WordPress 附件共享

更新时间:2018-01-23 13:31:39

本文档介绍如何通过在阿里云容器服务上创建 OSSFS 数据卷来实现 WordPress 的附件在不同容器之间的共享。

场景

Docker 容器的兴起使得 WordPress 的部署变得很简单。通过 阿里云容器服务,您可以使用编排模板一键部署 WordPress。

注意:有关使用阿里云容器服务创建 WordPress 应用的详细信息,参见 通过编排模板创建 WordPress

本示例使用以下编排模板创建一个名为 wordpress 的应用。

  1. web:
  2. image: registry.aliyuncs.com/acs-sample/wordpress:4.3
  3. ports:
  4. - '80'
  5. environment:
  6. WORDPRESS_AUTH_KEY: changeme
  7. WORDPRESS_SECURE_AUTH_KEY: changeme
  8. WORDPRESS_LOGGED_IN_KEY: changeme
  9. WORDPRESS_NONCE_KEY: changeme
  10. WORDPRESS_AUTH_SALT: changeme
  11. WORDPRESS_SECURE_AUTH_SALT: changeme
  12. WORDPRESS_LOGGED_IN_SALT: changeme
  13. WORDPRESS_NONCE_SALT: changeme
  14. WORDPRESS_NONCE_AA: changeme
  15. restart: always
  16. links:
  17. - 'db:mysql'
  18. labels:
  19. aliyun.logs: /var/log
  20. aliyun.probe.url: http://container/license.txt
  21. aliyun.probe.initial_delay_seconds: '10'
  22. aliyun.routing.port_80: http://wordpress
  23. aliyun.scale: '3'
  24. db:
  25. image: registry.aliyuncs.com/acs-sample/mysql:5.7
  26. environment:
  27. MYSQL_ROOT_PASSWORD: password
  28. restart: always
  29. labels:
  30. aliyun.logs: /var/log/mysql

该应用包含一个 MySQL 容器和三个 WordPress 容器(aliyun.scale: '3' 是阿里云容器服务的扩展标签,指定容器的数量。有关阿里云容器服务支持的标签,参见 标签说明)。WordPress 容器通过 link 访问 MySQL。通过定义 aliyun.routing.port_80: http://wordpress 标签实现了三个 WordPress 容器的负载均衡(详细信息参见 简单路由(支持HTTP/HTTPS))。

本示例部署简单,功能齐全,但其实存在一个致命的缺陷。WordPress 上传的附件是保存在本地磁盘上的,不同容器之间不能共享。当请求被分配到其它容器时,附件就打不开了。

解决方案

本文档介绍如何利用阿里云容器服务的 OSSFS 数据卷(OSSFS volume),无需改动任何代码,即可实现 WordPress 附件在不同容器之间的共享。

OSSFS 数据卷是阿里云容器服务提供的第三方数据卷,通过将各种云存储(比如 OSS)包装成数据卷,直接挂载在容器上。不同容器间可以共享数据卷,并在容器重启、迁移时自动重新挂载数据卷。

操作流程

  1. 创建 OSSFS 数据卷。

    1. 容器服务管理控制台,单击左侧导航栏中的 数据卷,即可使用数据卷功能。

    2. 选择需要创建数据卷的集群并单击右上角的 创建,按照提示创建 OSSFS 数据卷。

      有关如何创建 OSSFS 数据卷的详细信息,参见 创建 OSSFS 数据卷

    本示例中创建的 OSSFS 数据卷名称为 wp_upload。容器服务会在集群的所有节点上使用同一名称创建数据卷。如下图所示。

    1

  2. 使用 OSSFS 数据卷。

    WordPress 的附件,默认存放在 /var/www/html/wp-content/uploads 中。本示例中,只需将 OSSFS 数据卷映射到该目录,即可实现在不同的 WordPress 容器之间共享同一个 OSS bucket。

    1. 容器服务管理控制台,在 Swarm 菜单下,单击左侧导航栏中的 应用

    2. 选择本示例中所使用的集群,选择本示例中所创建的应用 wordpress 并单击右侧的 变更配置

      2

    3. 模板 中添加 OSSFS 数据卷到 WordPress 目录的映射。

      注意:您必须修改 应用版本,否则无法重新部署应用。

      3

    4. 单击 确定,重新部署应用。

  3. 打开 WordPress,上传附件,OSS bucket 里就能看到上传的附件了。

本文导读目录