一、查看Docker日志命令
Docker是一种容器化技术,使用它的过程中需要查看Docker的日志输出来调试或解决问题。查看Docker的日志有以下几种方式:
(1)使用docker logs命令。
(2)利用日志转发服务,如Fluentd、Logspout。
(3)手动查看Docker容器内部的日志文件。
docker logs [OPTIONS] CONTAINER
使用docker logs命令可以查看特定Docker容器内部的日志。其中,OPTIONS参数中有以下内容:
(1) -f:跟随日志输出。
(2) --tail:指定输出的日志行数。
(3) --since:查询指定时间之后的日志。
例如,查看容器my_container的最后10条日志:
docker logs --tail 10 my_container
二、查看Docker容器日志
当Docker容器出现问题时,通过查看其日志可以帮助我们找到问题。下面介绍如何查看Docker容器的日志。
第一种方式是使用docker logs命令,如上所述。
第二种方式是手动查看容器内部的日志文件。通过进入Docker容器,查看容器内部的日志文件,可以更加细致地查看容器的日志。方法如下:
docker exec -it CONTAINER bash
该命令的含义是在特定的Docker容器中启动一个交互式的bash终端。通过这个bash终端,可以像在普通Linux上一样操作容器内部。
进入容器后,可以查看容器内部的日志文件。
tail -f /var/log/syslog
三、查看Docker日志100行命令
为了检查容器的最后日志,我们可以使用以下命令查看容器的最后100行日志。
docker logs -f --tail 100 [container_name]
此命令将给出日志的最后100行,并将持续监视该容器的指定输出。
四、查看Docker日志大小
Docker容器的日志可以变得非常大,并占满文件系统。如果容器运行时间很长,日志大小可能会很大。因此,为了避免过多的负载和满磁盘的情况发生,需要在适当的时候清理或轮询Docker日志。
为了查看Docker容器的日志大小,我们可以使用以下命令:
du -sh /var/lib/docker/containers/[容器ID]/[容器ID]-json.log
该命令将输出容器日志文件的大小。
五、查看Docker日志位置
如果想查看Docker容器的日志文件位置,可以使用以下命令找到容器日志所在的文件位置:
docker inspect --format='{{.LogPath}}' [container_name_or_id]
该命令将给出容器日志的完整路径。
六、查看Docker日志策略未生效
当我们在Docker Compose中配置了Logging选项,但日志策略未生效时,需要检查是否可能与主机上的Logging Driver相关。在Linux系统上,我们需要配置rsyslog守护进程来监听Docker容器发出的日志数据。
使用以下命令对主机的logging driver进行检查:
docker info --format '{{.LoggingDriver}}'
要使Docker Compose中的Logging选项生效,必须重启Docker服务:
sudo service docker restart
七、Docker实时查看日志
当我们需要查看Docker容器的实时日志时,可以使用以下命令:
docker logs --follow [container_name]
该命令将输出容器的日志,直到使用CTRL+C中断为止。
八、Docker查看备份日志
在Docker容器中备份已生成的日志很重要,以便在需要时进行恢复。为方便起见,我们可以将容器日志直接发送到外部日志收集器,如ELK或Graylog,并启用备份和恢复功能。
Docker推荐使用Fluentd或Logspout来收集和转发Docker日志。
使用以下命令将容器的日志发送到Fluentd:
docker run -d --log-driver=fluentd --log-opt fluentd-address=localhost:24224 --log-opt tag="{{.Name}}" your_image
Fluentd将从如果指定的地址接收Docker日志,并将其发送到Elasticsearch或其他数据存储中进行增量备份。
九、Docker启动日志
Docker引擎的启动日志有助于检查Docker配置是否有误。启动日志可用于查看如何启动Docker引擎,以供调试或问题解决使用。
Docker启动日志默认存储在/var/log/下。要查看Docker引擎的启动日志,请键入以下命令:
sudo journalctl -u docker.service
该命令将输出启动日志。