Журналы SSHd в контейнере Docker не отображаются в журналах docker

При использовании

CMD ["/usr/sbin/sshd", "-D"]

в файле Docker, журналы докеров не отображают ведение журнала:

cat > Dockerfile.stdout <<EOF
FROM alpine:latest
RUN    apk add --no-cache openssh-server \
    && mkdir /var/run/sshd \
    && ssh-keygen -A
CMD ["/usr/sbin/sshd", "-D"]
EOF

docker build -f Dockerfile.stdout -t sshd-stdout .

docker run --name sshd-stdout -d sshd-stdout

docker logs sshd-stdout
<empty>

Хост Docker - CentOS:

cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

Серверная часть ведения журнала Docker - journald:

grep ^OPTIONS /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'

I также безуспешно пытался использовать json в качестве серверной части журналирования.

Как правильно «пересылать» журнал?


Как было предложено @marioavs, необходимо '-e'. Я пробовал «-e» и «-D», но не оба одновременно. Итак:

cat > Dockerfile.stdout <<EOF
FROM alpine:latest
RUN    apk add --no-cache openssh-server \
    && mkdir /var/run/sshd \
    && ssh-keygen -A
CMD ["/usr/sbin/sshd", "-D", "-e"]
EOF
2
задан 19 June 2019 в 09:10
1 ответ

Используйте опцию командной строки -e для пересылки всех сообщений на стандартную ошибку (из документов sshd):

-e Записывайте отладочные журналы на стандартную ошибку, а не в системный журнал.

-я нашел хороший пример в следующем файле Docker:

-простой SSHD-сервер на основе альпийских стандартов

0
ответ дан 3 December 2019 в 13:50

Теги

Похожие вопросы