Docker 从主机访问容器日志

Docker access container logs from the host machine

我在 AWS EC2 实例上有一个 docker 容器 运行,我想知道是否可以将目录挂载到容器日志目录,以便我可以访问主持人。

我 运行 的服务有一些日志文件,我想在每次不访问容器的情况下查看。

我试过的命令。

docker run -d -v $(pwd)/datalogs:/etc/tmp/logdir -p 8000:8000 -p 9000:9000 -p 2181:2181 --name burcon gmantmp/imagecon

它确实在主机上创建了一个目录,但它是空的。是否可以这样做,如果我哪里出错了。

您的 run 命令看起来不错,它将从主机挂载 /etc/tmp/logdir,因此容器将根据需要直接写入 ~/datalogs。如果没有输出,您需要确认应用程序确实正在写入 /etc/tmp/logdir

附带说明一下,如果您可以将容器中的应用配置为写入 stdout,那么您可以使用 docker logs 查看容器中发生的情况。然后你也可以使用不同的logging drivers,这给了你很大的灵活性。