首页 > 解决方案 > 滚动更新共享文件夹/文件 Docker

问题描述

我正在寻找一种在 Docker 容器之间共享文件/文件夹的方法。尤其是共享文件会给我带来问题。我想通过 docker-compose 在生产中使用 Docker,并使用一种可以让我零停机时间的部署技术(比如绿色/蓝色或其他东西)。

到目前为止,我所做的是通过首先检查 git 源来部署新的源代码。我保持旧容器运行,直到新容器启动。然后我停止旧的并将其删除。

我在使用共享文件时遇到的问题是 Docker 不锁定文件。因此,当具有相同应用程序的两个容器启动并写入相同的文件 shared_database.db 时,这会导致数据损坏。

根目录的文件夹结构如下所示:

/packages (git source)
/www (git source)
/shared_database.db (file I want to share across different deployments)
/www/public/files (folder i want to share across different deployments)

我试过了:

  1. 符号链接;不幸的是 Docker 不支持符号链接
  2. 在卷部分下的 docker-compose 文件中安装共享文件/文件夹,但由于 Docker 不锁定文件,这会导致数据损坏

如果我需要让自己更清楚或需要提供更多信息,我很乐意。让我知道。

标签: dockerdocker-swarmproduction-environmentvolumesmounted-volumes

解决方案


推荐阅读