首页 > 解决方案 > Docker 在卷上安装多个服务

问题描述

我有一个 docker-compose 文件,我在其中定义了 nginx、php、flask 并且每个文件都有这样的卷:

version: '3'

services:
  flask:
   ...
  volumes:
   ./foo:/foo/bar
  flask:
   ...
  volumes:
   ./foo:/foo/bar
  flask:
   ...
  volumes:
   ./foo:/foo/bar

所以,我的问题很明显。有没有办法只为 3 项服务定义一个卷?还有其他服务不共享同一个卷,那么是否可以对服务进行分组并给它们一个卷定义?

标签: dockerdocker-composedocker-volume

解决方案


 version: '3'

    services:
      flask1:
       .........
        volumes:
        - ./foo1:/foo1/bar
        - ./foo2:/foo2/bar
        - ./foo3:/foo3/bar

      flask2:
       .........
       volumes_from:
         - flask1

      flask3:
       .........
        volumes_from:
          - flask1

您可以将多个卷放在一个服务中,然后在另一个服务中调用所有这些卷。在每个服务的声明中,您必须指出您需要的卷,因此您总是必须放置至少两行来声明它们。再见。


推荐阅读