Ssh
docker logs
未顯示 Docker 容器中的 SSHd 日誌
使用時
CMD ["/usr/sbin/sshd", "-D"]
在 Dockerfile 中,
docker logs
不顯示日誌記錄: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 日誌記錄後端被記錄:
grep ^OPTIONS /etc/sysconfig/docker OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
我還嘗試使用 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
使用**-e**命令行選項將所有消息轉發到標準錯誤(來自 sshd 文件):
-e將調試日誌寫入標準錯誤而不是系統日誌。
我在以下 Docker 文件中找到了一個很好的範例: