GCP 上的 Docker 持久卷

标签 docker google-cloud-platform docker-compose persistent-volumes

我正在将服务部署到 GCP,我想保留数据库和日志。

不考虑 VM 的本地存储。

如何将 GCP 磁盘/桶挂载到容器?

这是我的docker-compose.yml:

version: '3'
services:
  backend:
    image: mybackend:latest
    volumes:
      - logs-data:/path/to/logs

  database:
    image: postgres:12.6-alpine
    volumes:
      - db-data:/var/lib/postgresql/data
      - logs-data:/var/log/postgresql

volumes:
  db-data:
    driver: ??
    driver_opts: ??

  logs-data:
    driver: ??
    driver_opts: ??

gcePersistentDisk 仅适用于 Kubernetes。

最佳答案

Docker内置驱动local只支持NFSbind(绑定(bind)到本地文件系统)。

bind 不被视为解决方案,因为容器将不在同一节点中。

这些是来自 Google 的可能解决方案:

  1. 创建另一个容器作为 NFS 主机
  2. 创建多个容器组成一个GlusterFS集群,并使用 NFS 连接到它
  3. 安装第 3 方驱动程序插件 REX Ray ( repo 不活跃)

关于GCP 上的 Docker 持久卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67158219/

相关文章:

docker - 在容器中升级 Jenkins 会丢失 SAML/SSO 配置

maven - 在 Ubuntu 14 上使用 Docker Maven 插件获取 LifeCiycleException

linux - systemctl --user start docker-desktop 不会启动 docker-desktop。 docker-desktop 从未启动

google-app-engine - `gcloud app deploy` 与 `appcfg.py`

ruby-on-rails - 如何调试在 docker 容器中运行的 rails 应用程序

Docker 在将 compose 环境从管道部署到服务器时创建与内部网络冲突的 IP 地址

kubernetes - 来自节点而不是 LB 服务的 GKE 集群导出流量

google-cloud-platform - GPU 配额未显示在请求列表 (GCP) 中

docker - 删除docker镜像后docker-compose失败

Docker-compose 命名挂载卷