Docker-Compose可扩展和持久数据存储

时间:2018-07-09 20:24:05

标签: docker docker-compose dockerfile docker-swarm

当前,我正在一个项目中,该项目使用后缀邮件服务器实现自定义docker映像。 Docker将为我们提供放大/缩小邮件服务的功能。

我的问题是关于数据存储。在每个容器实例中,我想将/ var / log的内容写入主机,甚至可能写入远程主机。不出所料,使用我当前的docker-compose文件缩放的实例都使用相同的存储位置。

我要查找的是是否存在诸如动态存储之类的东西。

例如,如果我最多扩展3个实例,那么我想在/ var / lib / docker / volumes / MYVOLUME /

下看到3个子目录

下面是我的docker-compose.yml文件供参考。

version: '3.2'
services:
  sd-corp:
    build: ./Corporate
    tty: true
    networks:
      corpnet:
    volumes:
      - type: volume
        source: corp
        target: /var/log
        volume:
          nocopy: true
  sd-ent:
    build: ./Entertainment
    tty: true
    networks:
      entnet:
    volumes:
      - type: volume
        source: ent
        target: /var/log
        volume:
          nocopy: true
  sd-soft:
    build: ./Software
    tty: true
    networks:
      softnet:
    volumes:
      - type: volume
        source: soft
        target: /var/log
        volume:
          nocopy: true
networks:
  corpnet:
    driver: bridge
    ipam:
      config:
      - subnet: 10.9.50.0/24
  entnet:
    driver: bridge
    ipam:
      config:
      - subnet: 10.9.51.0/24
  softnet:
    driver: bridge
    ipam:
      config:
      - subnet: 10.9.52.0/24
volumes:
  corp:
  ent:
  soft:

1 个答案:

答案 0 :(得分:0)

这些只是标准的系统日志文件吗?他们不应该记录到文件,应该记录到STDOUT并让docker handle them with a logging driver,这是处理容器日志的一种简单得多的方法。

Here's how the official Nginx image does it,通过将日志符号链接到stdout / stderr。