首页 > 其他分享 >docker 容器调试技巧

docker 容器调试技巧

时间:2024-07-23 11:57:42浏览次数:13  
标签:容器 启动 nginx command docker 调试

有时候docker容器可能因为映射不对,或者内部文件错误等等,会出现一启动就挂掉的情况,这种往往就是容器启动入口的程序有问题,但是因为一启动就挂,有时候日志啥的都看不到。这时候就可以通过 command 指令去覆盖掉默认Dockerfile 里面的 CMD 定义的入口(EntryPoint 定义的也类似)。

覆盖方式有两种

一种是 command: ["sleep","infinity"] 让主线程无限休眠,那么程序也就不会停止,那么docker 容器也就不会停掉。这样就可以通过 docker exec -it xxx bash 进入容器查看了。

另一个命令是 command: ["tail","-f","/dev/null"] 作用也是同理。

但是如果是用 docker swarm 或者 k8s 部署的调试的时候要注意, 因为这时候会有容器健康检测重启策略,用了上述命令,因为覆盖了默认的程序启动入口,那么健康检测逻辑就会失败,容器处于unhealthy 状态,然后就触发重启策略。

所以记得注释掉相关配置,如下示例:

version: "3.5"

services:
    nginx:
        hostname: nginx
        image: nginx
        ports:
            - target: 80
              published: 80
              mode: host
        deploy:
            mode: global
            # restart_policy:
            #     condition: on-failure
        networks:
            - overlay
        # 加此命令进行调试容器的时候,不要开启 healthcheck 和 restart_policy 策略,
        # 否则容器处于 unhealthy 状态,会不断重启
        command: ["sleep","infinity"]
        # healthcheck:
        #     test: bash /opt/nginx/check.sh
        #     interval: 20s
        #     timeout: 10s
        #     retries: 3
        logging:
            driver: "json-file"
            options:
                max-size: "2000k"
                max-file: "10"

标签:容器,启动,nginx,command,docker,调试
From: https://www.cnblogs.com/DHclly/p/18318014

相关文章

  • Centos 安装 Docker|教程
    准备工作系统要求Docker支持64位版本CentOS7/8,并且要求内核版本不低于3.10。CentOS7满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2存储层驱动)无法使用,并且部分功能可能不太稳定。卸载旧版本旧版本的Docker称为docker或者docker-engine,使用以下命......
  • laravel: 调试打印sql
    一,代码:<?phpnamespaceApp\Models;useIlluminate\Database\Eloquent\Factories\HasFactory;useIlluminate\Database\Eloquent\Model;useIlluminate\Support\Facades\DB;classReadLogModelextendsModel{useHasFactory;//定义关联的数据表......
  • 在K8S中,如果不能在容器内部使用netstat查看端口号的情况下,还有其他方式吗?
    在Kubernetes(K8S)中,如果Service访问出现问题,通常可以按照以下步骤进行详细的排查:1.检查Service的状态和配置操作:使用kubectldescribeservice<service-name>命令查看Service的详细描述,确保Service的类型(如ClusterIP,NodePort,LoadBalancer等)和端口映射(如port,targetPort,......
  • docker搭建rocketmq
    [root@ip-10-32-49-66~]#catrocketmq.yamlversion:'3.8'services:#RocketMQNameservernamesrv:image:apache/rocketmq:4.7.1container_name:rmqnamesrvports:-"9876:9876"volumes:-./data/namesrv/......
  • 史上最全的Linux常用软件安装教程【包含Docker安装】
    @目录1.系统版本2.已安装软件(1)常规方式安装的软件(2)docker安装的软件注意3.修改IP步骤4.Tips1.防火墙2.设置jar包开机自启动方式一(强烈推荐):service形式方式二:sh形式多服务同时启动/关闭3.编辑文件4.开机免密登录root5.设置禁止自动锁屏6.安装搜狗输入法7.环境变量配置汇总8.Doc......
  • 如何调试 python Flask [84] [CRITICAL] WORKER TIMEOUT?
    调试:gtts.tts:保存到temp.mp37月22日09:10:56PM[2024-07-2215:40:56+0000][84][严重]工作超时(pid:87)|||7月22日09:10:56PM[2024-07-2215:40:56+0000][87][INFO]工人退出(pid:87)7月22日09:10:57PM[2024-07-2215:40:57+0000][95][INF......
  • 自编译制作docker版本的onlyoffice镜像
    笔记记录自编译制作docker版本的onlyoffice镜像一、环境:1、win11安装Ubuntu20.04.6.LTS2、需要开代理文件参考:https://helpcenter.onlyoffice.com/installation/docs-community-compile.aspx二、准备1、sudoapt-getupdate2、sudoapt-getinstall-ygitpythonopenssh-......
  • 4.9k star,下一代开源WAF,可无缝集成docker、k8s
    这是一个基于nginx的web服务器,可以无缝集成到你现有的环境中(Linux,Docker,Swarm,Kubernetes),除了可以在命令行界面操作,也提供了webui界面可以操作。 图片 bunkerwebbunkerweb简介BunkerWeb是下一代开源Web应用程序防火墙(WAF),传统意义上的waf是在web服务器前面增加防护设施。......
  • Docker 笔记 - Docker 容器重启策略 --restart 介绍和实战
    https://zhuanlan.zhihu.com/p/494370957 1.Docker容器的重启策略目的为了保证容器运行时健壮性(自愈),Docker提供了容器重启策略,即使用参数--restart,它可以让容器在退出时自动尝试重启。场景Docker容器的重启策略一般用于生产环境,开发环境和实验环境可以忽略。例如使......
  • docker 操作
    1.docker安装环境准备--yum镜像源切换成阿里镜像mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backupcurl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repoyumcleanallyummakecache--添加阿里docker-ce安装......