【发布时间】:2017-05-04 02:01:50
【问题描述】:
如何从主机访问 Microsoft Docker 容器的 Windows 事件日志?
我在 Windows Server 2016 下有一个 docker 容器。
容器基于镜像:microsoft/iis
我可以通过以下方式获取容器的 IP 地址:
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" my-running-site
如何通过 windows 主机上的事件查看器连接到它?
【问题讨论】:
-
好问题!当然,您可以在容器中使用 powershell 并按预期使用
get-eventlog,但是从主机连接到容器意味着容器正在侦听事件日志的外部请求。如果您检查容器的侦听端口,则只有端口 135 (RPC) 侦听,这可能是正确的。下一步是使用docker run -p 135:135...将该端口暴露给外部,但在我的尝试过程中它不起作用......在 docker 或容器论坛或 GitHub 上发布这个问题怎么样? -
我不确定事件日志是否是在容器内进行日志记录的方式。虽然它是 Windows 中的传统工具,但容器的轻量级特性使得重定向到 stdout 和 stderr 成为容器日志记录的更好选择。这还有其他好处,例如将日志分析委托给 logstash 和 elasticsearch 等工具。然后更容易查询多个容器并集中存储日志。还可以重定向到 stdout 和 stderr 让您可以轻松地从主机的命令行运行 docker logs ... 以轻松获取日志。
-
我不能总是控制记录到哪里。如果我打开端口 135,我会得到“拒绝访问 (5)”。
-
我目前对你的问题的理解是:是否可以让一个容器内运行的应用程序(如IIS)将事件记录到Windows Event Log中,并从主机使用Windows Event Viewer查看那些事件。我理解正确吗?我也很想知道答案。
-
我也是。我也很好奇我们怎么做到的?运行一个进程不断将日志写入数据文件夹,并且主机可以访问它呢?
标签: docker windows-server-2016