【问题标题】:Persistant storage Azure container持久存储 Azure 容器
【发布时间】:2019-09-06 09:28:11
【问题描述】:

这几天我一直在苦苦思考如何在 Azure 上部署的自定义 docker 容器中设置持久存储。

为了方便起见,我在容器中使用了官方的 Wordpress 图像,并通过环境变量提供了数据库凭据,到目前为止一切都很好。该应用程序是无状态的,数据存储在 Azure 中的单独 MySQL 服务中。

如何处理服务器日志或上传的图像等内容文件,这些文件位于 /var/www/html/wp-content/upload 中,如果容器被删除或恢复备份快照,这些文件将被删除。是否可以将此目录挂载到主机位置?是否可以挂载此目录,以便可以通过 FTP 访问应用服务?

【问题讨论】:

    标签: azure


    【解决方案1】:

    好的,我意识到不可能将卷装载到单个容器应用程序。要挂载卷,您必须使用 Docker Compose 并按照下面的示例挂载卷。

    另外,请确保将应用程序设置 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 TRUE

    version: '3.3'
    
    services:
       wordpress:
         image: wordpress
         volumes:
          - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
         ports:
           - "8000:80"
         restart: always
    

    这样,您上传的文件将被保留并包含在快照备份中。

    【讨论】:

      【解决方案2】:

      是的,您可以这样做,并且您应该阅读 PV(持久卷)和 PVC(持久卷声明),它们允许将卷安装到您的集群上。

      在你的情况下,你可以挂载:

      1. Azure Files - 基本上是安装在 k8s 集群上的托管 NFS 端点
      2. Azure Volumes - 基本上托管在 k8s 集群上的磁盘卷

      【讨论】:

      • 感谢您的回答,但是只有在k8s集群中运行时才可用,而不是在单个容器中?
      • 一个容器在集群中运行!这里的集群用词不当,您可以拥有一个没有复制的 pod k8s 集群 - 尽管不建议将这种部署用于生产环境或其他环境
      • 好的,您能否提供一个在应用服务中设置单个容器并安装驱动器的示例?
      • 容器设置在另一个名为 AKS 的托管服务上,而不是在 Azure 上的应用服务解决方案上。网上有很多关于 AKS 入门和安装文件系统或驱动器的学术资料,我鼓励您阅读它们,如果您有问题,请回到这里。
      • 那么在应用服务上运行 docker 容器时就不能挂载驱动器了?
      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 2019-10-09
      • 2015-02-02
      • 2018-10-10
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多