我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解Docker在哪里保存日志文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解Docker在哪里保存日志文件

调试大多数 Linux 程序通常涉及检查日志文件,这可能是一个复杂的过程。但是,在 Docker 下的容器化环境中运行时,您需要使用更具体的工具来调试生产中的应用程序。

日志存储在哪里?

简单的答案是 Docker 将容器日志存储在其主要存储位置/var/lib/docker/. 每个容器都有一个特定于其 ID 的日志(完整 ID,而不是通常显示的缩短的 ID),您可以像这样访问它:


/var/lib/docker/containers/ID/ID-json.log

这 就是它们的存储位置,但由于它们采用 JSON 格式,因此不易读取,并且必须使用完整的容器 ID 很烦人。Docker 提供了一个内置命令来查看它们:


docker logs -f e4bd48ef3103

在这里,该-f 标志将保持提示打开并“关注”文件中的任何新条目。您还可以使用–tail 该文件,或使用–timestamps 来显示日志时间,或使用–until并 --since 根据时间进行过滤。

如果您使用 Docker Compose,则可以使用其中的 log 命令轻松查看所有日志:


docker-compose  logs

但是,您会注意到的一件事是 STDOUT 和 STDERR,它们对很多事情都很有用,但只显示 Docker 文件中“CMD”指定的入口点的控制台输出。许多应用程序都有自己的专用日志系统,这些系统通常会记录到/var/log/nginx/access.log. 仍然可以通过 Docker 从主机端访问这样的日志。

从容器内的应用程序查看日志

根据容器的不同,这可能不是必需的。例如,默认的 NGINX 容器设置为将其 Docker 日志发送到 STDOUT 以简化日志检查。它使用/dev/stdout 指向日志文件的符号链接来执行此操作,您可以为容器设置类似的内容。


RUN ln -sf /dev/stdout /var/log/nginx/access.log 
&& ln -sf /dev/stderr /var/log/nginx/error.log

但是,如果您想查看容器内的特定文件,您可以这样做。Docker 提供的exec -it 命令允许您在任何正在运行的 Docker 进程中运行任何命令。使用它,您可以在 Docker 容器内跟踪日志文件:


docker exec -it e4bd48ef3103 tail -f log.txt

因为这允许您运行任何命令,所以您可以使用journalctl 或任何其他您想要的调试策略,只要您以docker exec -it. /bin/bash 如果你想跳进去四处逛逛,你甚至可以跑步。

一个更适合主机服务的永久性解决方案是使用 Docker 卷挂载。您可以将类似目录绑定/var/log/nginx 到主机可见的卷。首先,创建一个新卷:


docker volume create nginx-logs

并使用以下命令运行容器–mount:


docker run -d \
--name devtest \
--mount source=nginx-logs,target=/var/log/nginx \
nginx:latest

如果您使用 Docker Compose,则该过程可以自动化:


version: "3.0"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - nginx-logs:/var/log/nginx/
volumes:
  nginx-logs:

这样,主机上的任何日志聚合服务都可以直接摄取日志文件。

查看 Docker 守护进程日志

如果您想查看服务器上整个 Docker 服务的特定日志,而不是任何特定的容器化应用程序,您需要查看journalctl 日志:


sudo journalctl -fu docker.service

这是它在大多数系统上的存储位置,但在某些系统上的位置不同:

  • 亚马逊Linux: /var/log/docker
  • CentOS/RHEL: /var/log/messages | grep docker
  • 苹果: ~/Library/Containers/com.docker.docker/Data/log/vm/dockerd.log
  • Windows: AppData\Roaming\Docker\log\vm\dockerd.log 

到此这篇关于详解Docker在哪里保存日志文件的文章就介绍到这了,更多相关Docker保存日志文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解Docker在哪里保存日志文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker是在哪里保存日志文件的

本篇文章给大家分享的是有关Docker是在哪里保存日志文件的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。调试大多数 Linux 程序通常涉及检查日志文件,这可能是一个复杂的过
2023-06-22

CentOS系统日志文件存储在哪里

CentOS系统日志文件通常存储在 /var/log/ 目录下。在这个目录下,你可以找到各种不同类型的日志文件,例如系统日志文件messages、安全日志文件secure、启动日志文件boot.log、内核日志文件dmesg等。你可以通过查
CentOS系统日志文件存储在哪里
2024-04-25

navicat的文件保存在哪里

navicat 保存文件的位置:windows:c:\users\\documents\navicat\mac:/users//documents/navicat/可自定义保存位置:通过连接到数据库前设置。Navicat 文件的保存位置N
navicat的文件保存在哪里
2024-04-24

oracle启动日志文件在哪里

oracle 启动日志文件位于 %oracle_base%\diag\rdbms\orcl\orcl\trace(windows)或 /u01/app/oracle/diag/rdbms/orcl/orcl/trace(unix/linux
oracle启动日志文件在哪里
2024-05-11

阿里云服务器日志保存策略详解

阿里云服务器日志保存策略是阿里云为保障服务器运行稳定性和安全性而采取的一种重要措施。本文将详细阐述阿里云服务器日志保存策略,并提供实用的解决方案。正文:一、阿里云服务器日志保存策略阿里云服务器日志保存策略的主要目的是确保服务器在出现问题时,能够通过查看日志文件来找到问题的原因。具体来说,阿里云服务器日志保存策略包
阿里云服务器日志保存策略详解
2023-11-01

Tomcat的日志文件存放位置在哪

在Tomcat中,日志文件通常存放在以下位置:Catalina.out 日志:Tomcat 的主要日志文件通常被写入到 catalina.out 文件中。这个文件通常位于 Tomcat 安装目录下的 logs 目录中。访问日志(Acces
Tomcat的日志文件存放位置在哪
2024-03-07

oracle数据库日志文件在哪里

oracle 数据库日志文件的位置因操作系统而异:unix/linux 系统:$oracle_base/oradata//redo01.log、redo02.log、redo03.log ...windows 系统:%oracle_base
oracle数据库日志文件在哪里
2024-05-10

OpenBSD中的系统日志文件通常存储在哪里

OpenBSD中的系统日志文件通常存储在/var/log目录下。在这个目录中,可以找到各种系统日志文件,如messages(一般包含系统日志信息)、authlog(包含认证日志信息)、maillog(包含邮件系统日志信息)等。这些日志文件记
OpenBSD中的系统日志文件通常存储在哪里
2024-04-09

怎么在Springboot项目中保存本地系统日志文件

今天就跟大家聊聊有关怎么在Springboot项目中保存本地系统日志文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 如下是集成,按步骤来:1、在项目的resources目录下创建
2023-06-14

oracle数据库日志文件在哪里打开

oracle数据库日志文件通常存储在名为“redo log files”或“redo logs”的文件中,其默认位置取决于操作系统:linux/unix/solaris:$oracle_base/oradata//redo0[1-n].lo
oracle数据库日志文件在哪里打开
2024-05-11

运行在Docker里的SpringBoot应用是如何查看记录在文件系统的日志

运行在Docker里的SpringBoot应用是如何查看记录在文件系统的日志,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我有一个SpringBoot应用,将其
2023-06-04

阿里云服务器文件目录在哪?详细解析文件存放位置

阿里云服务器是一种高性能的云计算服务,为企业和开发者提供了强大的计算能力。对于服务器的使用,我们常常会面临文件存放的问题。这篇文章将详细解析阿里云服务器文件目录在哪,帮助用户更好地管理服务器文件。一、阿里云服务器文件目录在哪里阿里云服务器文件目录通常在以下位置:/data阿里云服务器的数据存储目录通常位于根目录的
阿里云服务器文件目录在哪?详细解析文件存放位置
2023-11-20

编程热搜

目录