저널 드라이버를 사용하여 Docker에서 로그를 얻는 방법은 무엇입니까?

저널 드라이버를 사용하여 Docker에서 로그를 얻는 방법은 무엇입니까?

오픈수세 텀블위드 + 도커 17.04. 다음 명령을 사용하여 /etc/docker/daemon.json을 만들었습니다.

{
    "log-driver": "journald",
    "log-opts": {
            "labels": "my_test",
            "env": "os,customer"
    }
}

그런 다음 docker 데몬을 시작했습니다 systemctl start docker. 확인: 현재 기본 드라이버를 sudo docker info|grep Logg확인하세요 . journald그 사람도 sudo docker inspect -f '{{.HostConfig.LogConfig.Type}}' MY-CONTAINER-ID나한테 그 책을 읽어줬어요 journald. Docker는 다음과 같이 실행됩니다.

sudo docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup --tmpfs /run/dbus --tmpfs /run/lock --cap-add=ALL MY-CONTAINER

그런 다음 SH를 사용하여 편집했습니다. Docker에서는 다음 명령을 사용하여 여러 로그 메시지를 만들었습니다.

logger XXX
logger -p local0.notice XXX
# etc...

Docker 로그에 이러한 메시지가 표시됩니다 journalctl -n .... 컨테이너("호스트 OS")에서도 다음 로그 메시지를 찾을 수 있을 것 같습니다. Nothing journalctl -n .... 와 docker logs MY-CONTAINER-ID-아무것도 없습니다. Docker의 메시지를 컨테이너("호스트") 로그에 기록하고 싶습니다. 구성은 올바른 것 같지만 로그 메시지가 누락되었습니다. 누군가 나를 도와줄 수 있습니까? OpenSuse의 Docker/내 구성에 문제가 있습니까?

답변1

docker Journald 드라이버는 컨테이너 프로세스의 stdout 및 stderr을 캡처합니다.

반면에 로거 명령은 메시지를 /dev/log.

편집하다

이렇게 하면 좋을 것 같아logger -s

관련 정보