对于在docker容器中运行的Java应用程序,我应该在哪里输出我的日志,以便docker logs -f可以在运行一段时间之后读取java应用程序的日志输出?
我使用类似以下内容的
执行活动docker容器内的java应用程序docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar
到目前为止它运行我的Spring Boot java应用程序非常好。
以下任何一种方法都可以使用吗?
docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar > /var/log/docker-id.log
或者将java日志路径设置设置为特定目的地?
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
答案 0 :(得分:1)
要在docker中运行应用程序并能够查看日志,然后像下面这样运行它将起作用。
<强> Dockerfile 强>
FROM base-image
COPY app.jar /opt/app.jar
CMD ["java","-jar","/opt/rate-upload-tool.jar"]
构建Docker镜像
docker build -t java-app-image-name .
在后台运行泊坞窗图片
docker run --name app-container-name -d java-app-image-name
在此之后,您将能够查看泊坞窗的日志
docker logs -f app-container-name