Docker compose:如何启动输出受限的容器

Docker compose:如何启动输出受限的容器,docker,docker-compose,Docker,Docker Compose,我有一个docker compose文件,其中包括一个couchdb容器();当我编写docker组件时,couchdb容器会输出很多输出。有没有办法抑制该输出,以便我只看到其他容器的输出 也许吧 我可以在后台程序模式下运行couchdb吗 或 我可以以某种方式重写默认命令并将输出重定向到tmp文件吗 我不知道如何执行这两种操作,我希望在撰写文件本身中执行,而不是通过更改我的撰写文件callup命令。有什么帮助吗 以下是最小的组合文件: couchdb: container_name: co

我有一个docker compose文件,其中包括一个couchdb容器();当我编写docker组件时,couchdb容器会输出很多输出。有没有办法抑制该输出,以便我只看到其他容器的输出

也许吧

  • 我可以在后台程序模式下运行couchdb吗
  • 我可以以某种方式重写默认命令并将输出重定向到tmp文件吗
  • 我不知道如何执行这两种操作,我希望在撰写文件本身中执行,而不是通过更改我的撰写文件callup命令。有什么帮助吗

    以下是最小的组合文件:

    couchdb:
      container_name: couchdb
      image: klaemo/couchdb:2.0.0
      ports:
        - "5984:5984"
    

    我从一个makefile调用它:
    docker compose up——在容器退出时中止——强制重新创建和&docker compose down

    注意,docker容器记录到stdout和stderr是有原因的。它允许一个一致的日志界面,供
    docker log
    等命令使用,并用于从容器中提取信息。在一个大型容器生态系统中,如果一切都是一样的,那就更容易了

    运行时 在运行时,有两个选项

  • 您可以将couchdb容器设置为背景,并在前景中启动其他容器

    docker-compose up -d couchdb
    docker-compose up other container names
    
  • 您可以在后台启动所有内容,并且只能查看特定容器的日志

    docker-compose start  # or docker-compose up -d
    docker-compose logs -f other container names
    
  • 构建时间 要永久修改日志记录,可以在映像构建中更改CouchDB的日志配置

    couchdb:
      container_name: couchdb
      image: me/klaemo-couchdb:2.0.0
      build: 
        context: .
        dockerfile: Dockerfile.couchdb
      ports:
        - "5984:5984"
    
    Dockerfile.couchdb

    FROM klaemo/couchdb:2.0.0
    COPY couchdb.ini /opt/couchdb/etc/local.ini
    
    couchdb.ini
    需要包含容器中的所有原始配置设置
    /opt/couchdb/etc/local.ini
    ,将一些日志设置从stderr更新为文件:

    [log]
    file = /opt/couchdb/log/couch.log
    level = info
    
    还可以专门为模块设置日志级别

    [log_level_by_module]
    couch_httpd = info
    couch_replicator = info
    couch_query_servers = error
    

    您可能希望将
    /opt/couchdb/log
    目录作为卷从容器主机装载,这样您就不会一直将数据写入当前容器实例

    注意Docker容器登录到stdout和stderr是有原因的。它允许一个一致的日志界面,供
    docker log
    等命令使用,并用于从容器中提取信息。在一个大型容器生态系统中,如果一切都是一样的,那就更容易了

    运行时 在运行时,有两个选项

  • 您可以将couchdb容器设置为背景,并在前景中启动其他容器

    docker-compose up -d couchdb
    docker-compose up other container names
    
  • 您可以在后台启动所有内容,并且只能查看特定容器的日志

    docker-compose start  # or docker-compose up -d
    docker-compose logs -f other container names
    
  • 构建时间 要永久修改日志记录,可以在映像构建中更改CouchDB的日志配置

    couchdb:
      container_name: couchdb
      image: me/klaemo-couchdb:2.0.0
      build: 
        context: .
        dockerfile: Dockerfile.couchdb
      ports:
        - "5984:5984"
    
    Dockerfile.couchdb

    FROM klaemo/couchdb:2.0.0
    COPY couchdb.ini /opt/couchdb/etc/local.ini
    
    couchdb.ini
    需要包含容器中的所有原始配置设置
    /opt/couchdb/etc/local.ini
    ,将一些日志设置从stderr更新为文件:

    [log]
    file = /opt/couchdb/log/couch.log
    level = info
    
    还可以专门为模块设置日志级别

    [log_level_by_module]
    couch_httpd = info
    couch_replicator = info
    couch_query_servers = error
    

    您可能希望将
    /opt/couchdb/log
    目录作为卷从容器主机装载,这样您就不会一直将数据写入当前容器实例

    有没有一种方法可以从compose文件本身实现这一点?您可以在映像构建中修改couchdb的设置,以输出到日志文件,或者禁止记录到较低级别。我将添加一个注释:有没有办法从compose文件本身实现这一点?您可以在映像构建中修改couchdb的设置以输出到日志文件,或者禁止记录到较低级别。我将添加一个注释我喜欢这个解决方案因为它简单:我喜欢这个答案因为它简单:我喜欢这个解决方案因为它简单:我喜欢这个答案因为它简单: