Docker-compose:如何启动容器输出抑制
我有一个docker-compose文件,在其他几个文件夹中,一个couchdb容器( https://hub.docker.com/r/klaemo/couchdb/ ); 当我做docker-up时,couchdb容器会输出大量的输出。 有没有办法抑制输出,所以我只看到其他容器的输出?
也许
- 我可以以某种方式在守护进程模式下运行couchdb?
要么
- 我可以重写默认命令以及redirect输出到一个tmp文件?
我不知道如何做任何两个,我想在撰写文件本身,而不是通过改变我的撰写文件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
请注意,由于某种原因,Docker容器会logging到stdout和stderr。 它允许一个统一的日志界面,像docker logs
命令使用和logging驱动程序从容器中获取信息。 在一个大型的集装箱生态系统中,如果一切都一样的话,那就更容易了。
运行
在运行时有几个选项。
-
你可以背景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
build立时间
要永久修改日志logging,您可以在映像构build中更改CouchDB的日志configuration
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
所有原始configuration设置,将一些日志设置从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
目录挂载为一个卷,这样就不会始终将数据写入当前容器实例。