而不是_SYSTEMD_UNIT
字段使用容器名称。
我登陆这里是因为docker stack/swarm
缺少在docker-compose logs
单个节点上记录所有服务的功能。
使用 Docker 服务器版本:18.03.0-ce 和 docker compose 版本 3.6,可以将所有日志发送到 journald 并按服务名称记录它们。为了识别每个容器,用图像名称标记它们。请参阅 docker-compose.dev.yml 的日志记录部分
码头工人组成:
version: '3.6'
networks:
skynet:
driver: overlay
services:
mongo:
image: mongo:3
networks:
- skynet
volumes:
- /data/mongodb:/data/db
logging:
driver: "journald"
options:
tag: "{{.Name}}"
labels: "com.docker.stack.namespace"
日记本:
sudo journalctl -b -o short --all -f COM_DOCKER_STACK_NAMESPACE=skynet
码头工人命令:
docker stack deploy -c docker-compose.dev.yml skynet
将输出:skynet_mongo.1.ins4s13luwiekrri3m5a8vwwl
Apr 24 14:23:08 c-wrk skynet_mongo.1.ins4s13luwiekrri3m5a8vwwl[19410]: 2018-04-24T12:23:08.212+0000 I NETWORK [listener] connection accepted from 10.0.0.10:36518 #3 (3 connections now open)
使用完整的注释:
要查看可用标签,请使用:docker inspect -f {{.Config.Labels}} <docker-id>
可用标签使用:自定义日志驱动程序输出
配置 journald 日志驱动程序:Docker Journald 日志记录驱动程序
着色日志输出:使用 journalctl | ccze -A