Docker容器的调试技巧之docker logs与docker service logs解读

 更新时间:2024年01月18日 09:04:20   作者:fananchong2  
这篇文章主要介绍了Docker容器的调试技巧之docker logs与docker service logs,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

调试容器

不少刚接触Docker的同学,通常面对docker容器起不来,或者一直在重复启动中不知措施。

docker提供了一系列简单命令,很容易调试容器运行中的问题。

原理很简单,就是可以直接输出容器运行时(或过去式的)的日志。

通常有4种方式:

  • docker run (控制台上启动容器)
  • docker exec (附加进入后台容器)
  • docker logs
  • docker service logs

下面依次介绍之

控制台启动容器

打个比如调试启动redis容器

docker run -it -rm redis redis-server [redis 启动参数略...]

这样redis-server的日志输出直接打印到控制台上

缺点是,这种方式仅供启动容器调试时使用,无法操作后台运行中的容器,或已失效的容器。

docker exec 附加进入后台容器

有时候需要进入容器内,查看系统运行状况。这时候可以使用docker exec。

使用docker exec的前提是容器在运行中。因此当容器不能正常工作时,往往无法使用该命令

docker logs

实际上docker容器不管处于什么状态,都可以使用docker logs获取 容器的所有日志。

docker logs [容器名]

docker logs还有局限性,即无法获取docker swarm模式下,启动失败的容器日志

docker service logs

针对docker swarm模式,获取容器日志的命令。

一般,依次执行下列命令,得到某服务的容器名

docker service ls
docker service ps [服务名]

然后就可以通过容器名,获取其日志了

docker service logs [容器名]

docker service logs显示日志为空

要让 docker service logs 正常工作,需要设置docker一些配置

vi /etc/docker/daemon.json

给该文件添加:

{
    "log-driver": "json-file",
    "log-opts": {
        "labels": "production_status,geo",
        "env": "os,customer"
    }
}

然后重启docker

service docker restart

关于docker service logs的详细介绍,可以参考官方文档:

https://docs.docker.com/engine/reference/commandline/service_logs/#extended-description

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • CentOS 7上安装Docker 1.8 的步骤详解

    CentOS 7上安装Docker 1.8 的步骤详解

    本文分步骤给大家介绍了CentOS 7上安装Docker 1.8 的步骤详解,需要的朋友可以参考下
    2018-11-11
  • Docker 容器日志分析

    Docker 容器日志分析

    这篇文章主要介绍了Docker 容器日志分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 如何利用Docker部署一个简单的springboot项目

    如何利用Docker部署一个简单的springboot项目

    这篇文章主要介绍了如何利用Docker部署一个简单的springboot项目,本文通过实例图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • docker容器无法执行vim的解决方案

    docker容器无法执行vim的解决方案

    这篇文章主要介绍了docker容器无法执行vim的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 解决docker pull镜像报错的问题

    解决docker pull镜像报错的问题

    这篇文章主要介绍了解决docker pull镜像报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker springcloud k8s集成部署方式

    docker springcloud k8s集成部署方式

    文章介绍了如何将Docker、SpringCloud和Kubernetes集成部署,包括环境搭建、构建Docker镜像、部署到Kubernetes、验证和测试以及注意事项
    2025-03-03
  • docker之创建MariaDB镜像的方法

    docker之创建MariaDB镜像的方法

    这篇文章主要介绍了docker之创建MariaDB镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • docker搭建etcd集群方式 bitnami/etcd

    docker搭建etcd集群方式 bitnami/etcd

    这篇文章主要介绍了docker搭建etcd集群方式 bitnami/etcd,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 如何修改docker官方镜像内部内容并重新build镜像

    如何修改docker官方镜像内部内容并重新build镜像

    这篇文章主要介绍了如何修改docker官方镜像内部内容并重新build镜像问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 如何设置docker开机自启动,并设置容器自动重启

    如何设置docker开机自启动,并设置容器自动重启

    这篇文章主要介绍了如何设置docker开机自启动,并设置容器自动重启问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论