Docker - 日志
Docker - 日志记录
Section titled “Docker - 日志记录”有效的日志记录对于监控应用程序和排查容器内部问题至关重要。Docker 提供了在容器层面和 Docker
容器日志记录
Section titled “容器日志记录”默认情况下,Docker 会捕获容器内部运行的主进程的标准输出(docker logs
使用 docker logs
Section titled “使用 docker logs”docker logs首先,确保你有一个正在运行的容器(例如,使用 docker rundocker ps
# Example: Start a simple container that prints logsdocker run -d --name logger-test alpine sh -c 'while true; do echo "Log entry at $(date)"; sleep 5; done'现在,查看其日志:
# View all logs for the container 'logger-test'docker logs logger-test
# Follow the logs in real-time (like tail -f)docker logs -f logger-test
# Show only the last 5 log entriesdocker logs --tail 5 logger-test
# Show logs since a specific timestampdocker logs --since 2023-10-27T10:00:00 logger-test
# Add timestamps to each log line (provided by Docker)docker logs -t logger-test日志驱动程序(Logging Drivers)
Section titled “日志驱动程序(Logging Drivers)”Docker 使用日志驱动程序来确定容器日志发送到何处。默认的驱动程序是 json-file/var/lib/docker/containers/<container-id>/
其他可用的驱动程序可以将日志发送到不同的目的地:
:将日志发送到journaldsystemd journal (Linux)。 :将日志发送到syslogsyslog 服务器。 、fluentd 、gelf 、awslogs 、splunk :将日志发送到相应的集中式日志平台。gcplogs :禁用容器的日志记录。none
你可以在 Docker 守护进程配置文件(daemon.jsondocker run--log-driver--log-opt
# Example: Run a container using the 'syslog' driverdocker run -d --log-driver=syslog --name my-syslog-app my-image在生产环境中有效管理日志,尤其是在处理大量容器或需要集中式日志分析时,使用适当的日志驱动程序至关重要。
Docker 守护进程日志记录
Section titled “Docker 守护进程日志记录”Docker 守护进程本身也会生成日志,这对于排查 Docker Engine 的问题非常有用。
访问守护进程日志的位置和方法取决于主机操作系统及其
- **Linux (
systemd ):**使用 查看守护进程日志:journalctl 。添加sudo journalctl -u docker.service 标志可以跟踪日志。-f - **Docker Desktop (Windows/Mac):**通常可以通过 Docker Desktop GUI(图形用户界面)的“排查故障”部分访问日志,或在特定的日志文件中找到(请查阅 Docker Desktop 文档以获取具体位置)。
调整守护进程日志级别
Section titled “调整守护进程日志级别”你可以通过在 daemon.json/etc/docker/daemon.jsonlog-level
// Example /etc/docker/daemon.json excerpt{ "log-level": "debug"}可用的级别通常包括 debuginfowarnerrorfatalinfodaemon.jsonsudo systemctl restart dockerdebug