我有一个docker-compose文件,其中包括一个couchdb容器(https://hub.docker.com/r/klaemo/couchdb/);当我做docker-compose时,couchdb容器会输出很多输出。有没有办法抑制输出,所以我只看到其他容器'输出?
也许
或
我不知道怎么做这两个中的任何一个,我想在compose文件本身内做,而不是通过更改我的compose file callup命令。有帮助吗?
这是最小的撰写文件:
couchdb:
container_name: couchdb
image: klaemo/couchdb:2.0.0
ports:
- "5984:5984"
我从makefile中调用它:docker-compose up --abort-on-container-exit --force-recreate && docker-compose down
答案 0 :(得分:2)
请注意,Docker容器由于某种原因登录到stdout和stderr。它允许使用docker logs
等命令的一致日志界面,并允许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
目录作为卷从容器主机挂载,这样您就不会一直将数据写入当前容器实例。