【问题标题】:How to see the logs of docker container running on different ports如何查看不同端口上运行的docker容器的日志
【发布时间】:2018-05-04 09:32:02
【问题描述】:
  • 我正在使用以下命令在两个不同的端口上运行单个 docker 容器

    docker run -p ${EXTERNAL_PORT_NUMBER}:${INTERNAL_PORT_NUMBER} -p ${EXTERNAL_PORT_NUMBER_SECOND}:${INTERNAL_PORT_NUMBER_SECOND} --network ${NETWORK} --name ${SERVICE_NAME} --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}

我可以看到容器运行良好

我的问题是如何查看这个 docker 容器的日志。

每次sudo docker logs database-service -f 时,我只能看到容器在9003 端口上运行的日志。

如何查看容器在9113上运行的日志

【问题讨论】:

  • 您好,在我看来,docker logs 并不关心端口,它会记录您容器内运行的所有进程,或所有应用程序日志。
  • 感谢您的回复。我作为 docker 容器运行的服务是节点服务。它总是显示 9003 端口。没有给出运行该服务的硬代码。无论我使用 docker run 传递什么参数,它都使用相同的参数。但我无法查看在 9113 上运行的服务的日志

标签: docker docker-compose docker-machine


【解决方案1】:

您正在获取容器中 stdout 或 stderr 上显示的所有日志。

与暴露在不同端口的进程无关。

如果 2 个实例在容器内运行,并且两个实例都在系统控制台上显示日志,那么您将在容器的 docker logs 命令上获得两个日志。

您可以尝试multitail 实用程序在 docker exec 命令中跟踪多个日志文件。

为此,您必须将其安装在该容器中。

【讨论】:

    【解决方案2】:

    您可以将外部卷绑定到容器服务日志并查看日志

    docker run -v 'path_to_you_host_logs':'container_service_log_path'

    docker run -v 'home/user/app/apache_access.log': '/var/log/apache_access.log'

    【讨论】:

      最近更新 更多