一、使用docker logs命令查看容器日志
docker logs命令可以查看指定容器的日志信息,命令格式为:
docker logs [OPTIONS] CONTAINER其中,OPTIONS为多个参数选项,可以使用docker logs --help命令查看具体选项。CONTAINER为容器的名称或者容器的ID。
要查看某个容器的日志信息,可以使用docker logs命令,并指定容器的名称或者容器的ID:
docker logs CONTAINER如果要查看容器中最新的10条日志信息,可以使用-n选项:
docker logs -n 10 CONTAINER
二、指定日志输出格式
可以使用--format选项指定日志文件的输出格式,该选项支持的输出格式包括:json、logfmt、raw、journald、pretty、short、tty;其中,json、logfmt、raw、journald只能在Linux平台上使用。
例如,指定输出格式为json:
docker logs --format json CONTAINER输出结果为json格式的字符串。
三、指定日志输出时间戳格式
可以使用--timestamp选项指定输出日志信息的时间戳格式,该选项支持的时间戳格式包括:rfc3339、rfc3339nano、unix、unixnano。
例如,指定输出时间戳格式为unix:
docker logs --timestamp unix CONTAINER输出结果的时间戳为unix格式的时间戳。
四、查看容器内部进程的日志
通过docker logs命令只能查看容器的标准输出和标准错误输出的日志信息,如果要查看容器内部进程的日志信息,可以使用docker exec命令,该命令可以在正在运行的容器中执行命令。
例如,要查看正在运行的容器nginx中nginx进程的日志信息,可以使用以下命令:
docker exec CONTAINER_NAME sh -c 'tail -f /var/log/nginx/access.log'
五、使用docker-compose查看容器日志
在使用docker-compose管理多个容器的时候,可以使用以下命令查看某个容器的日志信息:
docker-compose logs [OPTIONS] [SERVICE...]其中,OPTIONS为多个参数选项,可以使用docker-compose logs --help命令查看具体选项。SERVICE为服务的名称。
要查看某个服务的日志信息,可以使用docker-compose logs命令,并指定服务的名称:
docker-compose logs SERVICE如果要查看服务中最新的10条日志信息,可以使用--tail选项:
docker-compose logs --tail 10 SERVICE
六、结合ELK/EFK Stack可视化容器日志
除了使用docker自带的命令和工具查看容器日志外,还可以通过ELK/EFK Stack将容器日志可视化,方便运维人员查看和分析日志信息。
ELK/EFK Stack包括Elasticsearch、Logstash、Kibana(或者Filebeat),可以将日志信息收集、存储、分析和可视化。
其中,Elasticsearch用于存储、检索日志信息;Logstash或者Filebeat用于收集和过滤日志信息;Kibana用于展示和分析日志信息。
通过配置Logstash或者Filebeat收集容器日志信息,并将它们发送到Elasticsearch中,可以通过Kibana查看容器日志信息的Dashboard,包括日志信息的数量、容器的名称、日志的级别等等。