Docker多容器日志记录帽

Docker多容器日志记录帽,docker,docker-compose,Docker,Docker Compose,我正试图限制docker日志文件的最大大小。每个容器的日志文件最大值应为100米。因此,每个容器(如边缘、工作者等)应该只允许有一个100MB的日志文件 我试图插入: log_opt: max-size: 100m 在我下面的docker-compose.yml文件的末尾,我发现了一个错误。 我应该把它放在哪里?。而且,当我将它放在每个容器定义中时,我会得到一个错误。我阅读了docker文档,但没有说明选项的确切位置 这是我的docker compose.yml文件: version:

我正试图限制docker日志文件的最大大小。每个容器的日志文件最大值应为100米。因此,每个容器(如
边缘
工作者
等)应该只允许有一个100MB的日志文件

我试图插入:

log_opt:
    max-size: 100m
在我下面的docker-compose.yml文件的末尾,我发现了一个错误。 我应该把它放在哪里?。而且,当我将它放在每个容器定义中时,我会得到一个错误。我阅读了docker文档,但没有说明选项的确切位置

这是我的
docker compose.yml
文件:

version: '2.0'
services:
  ubuntu:
    image: ubuntu
    volumes:
      - box:/box
  cache:
    image: redis:3.0
  rabbitmq:
    image: rabbitmq:3-management
    volumes:
      - ${DATA}/rabbitmq:/var/lib/rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
  placements-store:
    image: redis:3.0
    command: redis-server ${REDIS_OPTIONS}
    ports:
      - "6379:6379"
  api:
    image: ruby:2.3
    command: bundle exec puma -C config/puma.rb
    env_file:
      - ./.env
    working_dir: /app
    volumes:
      - .:/app/
      - box:/box
    expose:
      - 3000
    depends_on:
      - cache
      - placements-store
  worker:
    image: ruby:2.3
    command: bundle exec sidekiq -C ./config/schedule.yml -q default -q high_priority,5 -c 10
    env_file:
      - ./.env
    working_dir: /app
    environment:
      INSTANCE_TYPE: worker
    volumes:
      - .:/app/
      - box:/box
    depends_on:
      - cache
      - placements-store
  sidekiq-monitor:
    image: ruby:2.3
    command: bundle exec thin start -R sidekiq.ru -p 9494
    env_file:
      - ./.env
    working_dir: /app
    volumes:
      - .:/app/
      - box:/box
    depends_on:
      - cache
    expose:
      - 9494
  sneakers:
    image: ruby:2.3
    command: bundle exec rails sneakers:run
    env_file:
      - ./.env
    working_dir: /app
    environment:
      INSTANCE_TYPE: worker
    volumes:
      - .:/app/
      - box:/box
    depends_on:
      - cache
      - placements-store
      - rabbitmq
  edge:
    image: ruby:2.3
    command: bundle exec thin start -R config.ru -p 3000
    environment:
      REDIS_URL: redis://placements-store
      RACK_ENV: development
      BUNDLE_PATH: /box
      RABBITMQ_HOST: rabbitmq
    working_dir: /app
    volumes:
      - ./edge:/app/
      - box:/box
    depends_on:
      - placements-store
      - rabbitmq
    expose:
      - 3000
  proxy:
    image: openresty/openresty:latest-xenial
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./config/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
volumes:
  box:
  # node_modules:
  # bower_components:
  # client_dist:
这就是我尝试的,例如在
rabbitmq
容器下插入:

version: '2.0'
services:
  ubuntu:
    image: ubuntu
    volumes:
      - box:/box
  cache:
    image: redis:3.0
  rabbitmq:
    image: rabbitmq:3-management
    #volumes:
    #  - ${DATA}/rabbitmq:/var/lib/rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    log_opt:
      max-size: 50m
  placements-store:
    image: redis:3.0
    command: redis-server ${REDIS_OPTIONS}
    ports:
      - "6379:6379"
这是我得到的错误:

错误:合成文件“./docker Compose.yml”无效,因为: 不支持服务的配置选项。rabbitmq:“log_opt”

尝试使用
选项更改
日志选项:
,但出现相同错误:

错误:合成文件“./docker Compose.yml”无效,因为: 不支持服务的配置选项。rabbitmq:“选项”

docker版本还包括:

docker --version && docker-compose --version
Docker version 1.11.2, build b9f10c9/1.11.2
docker-compose version 1.9.0, build 2585387
更新:

已尝试使用文档中所述的
日志记录
选项(适用于2.0版):

获取错误:

错误:for rabbitmq无法为服务rabbitmq创建容器: json:无法将数字解组为字符串类型的Go值错误: 在启动项目时遇到错误


虽然
docker run
有一个最大大小,请看,我在docker compose的文档中找不到它,可能它被删除了,因为我在这里@user2915097找到了它。是的,但是日志选项不起作用。在这里有你没有的缩进,也许这就是问题所在,和yaml一样经常files@user2915097查看我的更新问题。根据我的说明,您必须添加
log\u驱动程序:“json文件”log\u opt:max size:“100k”max file:“20”
也许您需要在log\u opt之前添加json文件?而
docker run
有一个max\u大小,请参阅,我在docker compose的文档中找不到它,可能它被删除了,因为我在这里@user2915097找到了,是的,但是日志不起作用。在这里有你没有的缩进,也许这就是问题所在,就像yaml一样files@user2915097请参阅我的更新问题。根据我的建议,您必须添加
log\u驱动程序:“json文件”log\u opt:max size:“100k”max file:“20”
也许您需要在log\u opt之前添加json文件?
version: '2.0'
services:
  ubuntu:
    image: ubuntu
    volumes:
      - box:/box
  cache:
    image: redis:3.0
  rabbitmq:
    image: rabbitmq:3-management
    #volumes:
    #  - ${DATA}/rabbitmq:/var/lib/rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    logging:
      driver: "json-file"
      options:
        max-size: 100m
        max-file: 1
  placements-store:
    image: redis:3.0
    command: redis-server ${REDIS_OPTIONS}
    ports:
      - "6379:6379"