gpt4 book ai didi

Docker-compose:如何启动一个输出被抑制的容器

转载 作者:行者123 更新时间:2023-12-02 21:23:33 26 4
gpt4 key购买 nike

我有一个 docker-compose 文件,其中包括一个 couchdb 容器( https://hub.docker.com/r/klaemo/couchdb/ );当我执行 docker-compose up 时,couchdb 容器会喷出大量输出。有没有办法抑制该输出,所以我只能看到其他容器的输出?

也许

  • 我可以以某种方式以守护程序模式运行couchdb吗?

  • 或者
  • 我可以以某种方式覆盖默认命令并将输出重定向到 tmp 文件?

  • 我不知道如何做这两个中的任何一个,我想在撰写文件本身中做到这一点,而不是通过更改我的撰写文件调用命令。有什么帮助吗?

    这是最小的撰写文件:
    couchdb:
    container_name: couchdb
    image: klaemo/couchdb:2.0.0
    ports:
    - "5984:5984"

    我从生成文件中调用它: docker-compose up --abort-on-container-exit --force-recreate && docker-compose down

    最佳答案

    请注意,Docker 容器记录到 stdout 和 stderr 是有原因的。它为 docker logs 等命令提供一致的日志接口(interface)用于 logging drivers从容器中获取信息。在大型容器生态系统中,如果一切都一样,那就更容易了。

    运行

    在运行时有几个选项。

  • 您可以将 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-compose:如何启动一个输出被抑制的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168878/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com