小编Zac*_*lls的帖子

Docker-compose 推荐使用数据容器的方式

在我的应用程序中,我有一个 nginx 容器,我想用它来提供静态 webapp 文件。这些 webapp 文件存在于名为“webapp”的单独容器中。

将 webapp 容器安装到 nginx 容器中的推荐方法是什么?我目前的方法是这样的:

version: '2'
services:
  nginx:
    volumes_from:
      - webapp


  webapp:
      image: someimageurl                                  
Run Code Online (Sandbox Code Playgroud)

在 webapp 的 Dockerfile 中,我在 nginx 容器所服务的同一路径上公开了一个卷。

这很好用,但问题是在 docker-compose v3 中,“volumes_from”被删除并替换为命名卷。所以我的新配置看起来像:

version: '3'

volumes: 
   static-webapp:

services:
  nginx:
    volumes:
      - static-webapp:/opt/webapp


  webapp:
      image: someimageurl
      volumes:
        - static-webapp:/opt/webapp                          
Run Code Online (Sandbox Code Playgroud)

这样做的问题是来自 webapp 容器的数据只会被复制到 'static-webapp' 卷中一次。更改内容后重新运行docker-compose up,volume中的内容不变。我知道这是设计使然,以免覆盖持久数据。

我的问题是:我应该如何使用 docker-compose 的 v3 来做到这一点?我本质上想要一个可以安装到多个容器中的未命名卷。

我想到的解决方案是:

1.) 将静态内容捆绑在 nginx 容器中。我不喜欢这样,因为那样我就无法将需求分开。

2.) 我可以在每次 docker-compose 运行后手动删除“static-webapp”卷。这似乎也不理想。

docker docker-compose

4
推荐指数
1
解决办法
1123
查看次数

标签 统计

docker ×1

docker-compose ×1