爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      k8s基础篇 pod(十)Pod容器探测和钩子

      首页 知识中心 其他 文章详情页

      k8s基础篇 pod(十)Pod容器探测和钩子

      2024-10-24 08:32:05 阅读次数:29

      容器

      10.1 容器钩子:postStart和preStop

      postStart:容器创建成功后,运行前的任务,用于资源部署、环境准备等。 preStop:在容器被终止前的任务,用于优雅关闭应用程序、通知其他系统等。

      演示postStart和preStop用法
      ......
      containers:
      - image: sample:v2  
           name: war
           lifecycle:
            postStart:
             exec:
               command:
                - “cp”
                - “/sample.war”
                - “/app”
            prestop:
             httpGet:
              host: 
              path: /waring
              port: 8080
              scheme: HTTP
      ......
      
      以上示例中,定义了一个Pod,包含一个JAVA的web应用容器,其中设置了PostStart和PreStop回调函数。即在容器创建成功后,复制
      /sample.war到/app文件夹中。而在容器终止之前,发送HTTP请求到http://:8080/waring,即向监控系统发送警告。
      
      优雅的删除资源对象
      当用户请求删除含有pod的资源对象时(如RC、deployment等),K8S为了让应用程序优雅关闭(即让应用程序完成正在处理的请求后,再关闭软件)
      ,K8S提供两种信息通知:
      1)、默认:K8S通知node执行docker stop命令,docker会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,
      如果等待时间达到设定的超时时间,或者默认超时时间(30s),会继续发送SIGKILL的系统信号强行kill掉进程。
      
      2)、使用pod生命周期(利用PreStop回调函数),它执行在发送终止信号之前。
      默认情况下,所有的删除操作的优雅退出时间都在30秒以内。kubectl delete命令支持--grace-period=的选项,以运行用户来修改默认值。0表示
      删除立即执行,并且立即从API中删除pod。在节点上,被设置了立即结束的的pod,仍然会给一个很短的优雅退出时间段,才会开始被强制杀死。如下:
      
          spec:
            containers:
            - name: nginx-demo
              image: centos:nginx
              lifecycle:
                preStop:
                  exec:
                    # nginx -s quit gracefully terminate while SIGTERM triggers a quick exit
                    command: ["/usr/local/nginx/sbin/nginx","-s","quit"]
              ports:
                - name: http
                  containerPort: 80

      10.2 存活性探测livenessProbe和就绪性探测readinessProbe

      livenessProbe:存活性探测
        许多应用程序经过长时间运行,最终过渡到无法运行的状态,除了重启,无法恢复。通常情况下,K8S会发现应用程序已经终止,然后重启应用程序
        pod。有时应用程序可能因为某些原因(后端服务故障等)导致暂时无法对外提供服务,但应用软件没有终止,导致K8S无法隔离有故障的pod,调用
        者可能会访问到有故障的pod,导致业务不稳定。K8S提供livenessProbe来检测容器是否正常运行,并且对相应状况进行相应的补救措施。 
      
      readinessProbe:就绪性探测
      在没有配置readinessProbe的资源对象中,pod中的容器启动完成后,就认为pod中的应用程序可以对外提供服务,该pod就会加入相对应的service
      ,对外提供服务。但有时一些应用程序启动后,需要较长时间的加载才能对外服务,如果这时对外提供服务,执行结果必然无法达到预期效果,影响用
      户体验。比如使用tomcat的应用程序来说,并不是简单地说tomcat启动成功就可以对外提供服务的,还需要等待spring容器初始化,数据库连接上等
      等。
      
      目前LivenessProbe和ReadinessProbe两种探针都支持下面三种探测方法:
      1、ExecAction:在容器中执行指定的命令,如果执行成功,退出码为 0 则探测成功。
      2、TCPSocketAction:通过容器的 IP 地址和端口号执行 TCP 检 查,如果能够建立 TCP 连接,则表明容器健康。
      3、HTTPGetAction:通过容器的IP地址、端口号及路径调用 HTTP Get方法,如果响应的状态码大于等于200且小于400,则认为容器健康
      
      探针探测结果有以下值:
      1、Success:表示通过检测。
      2、Failure:表示未通过检测。
      3、Unknown:表示检测没有正常进行。
      
      Pod探针相关的属性:
      探针(Probe)有许多可选字段,可以用来更加精确的控制Liveness和Readiness两种探针的行为
          initialDelaySeconds: Pod启动后首次进行检查的等待时间,单位“秒”。
          periodSeconds: 检查的间隔时间,默认为10s,单位“秒”。
          timeoutSeconds: 探针执行检测请求后,等待响应的超时时间,默认为1s,单位“秒”。
      successThreshold:连续探测几次成功,才认为探测成功,默认为 1,在 Liveness 探针中必须为1,最小值为1。
       
      failureThreshold: 探测失败的重试次数,重试一定次数后将认为失败,在 readiness 探针中,Pod会被标记为未就绪,默认为 3,最小值为 1
      
      两种探针区别:
      ReadinessProbe 和 livenessProbe 可以使用相同探测方式,只是对 Pod 的处置方式不同:
      readinessProbe 当检测失败后,将 Pod 的 IP:Port 从对应的 EndPoint 列表中删除。
      livenessProbe 当检测失败后,将杀死容器并根据 Pod 的重启策略来决定作出对应的措施。

      1、LivenessProbe 探针使用示例

      (1)、通过exec方式做健康探测

      [root@k8s01 test1]# cat liveness-exec.yaml
      apiVersion: v1
      kind: Pod
      metadata:
        name: liveness-exec
        labels:
          app: liveness
      spec:
        containers:
        - name: liveness
          image: busybox:1.28
          imagePullPolicy: IfNotPresent
          command: ["/bin/sh","-c","touch /tmp/healthy && sleep 30 && rm -f /tmp/healthy && sleep 600"]
          livenessProbe:
            initialDelaySeconds: 10 #延迟加载时间
            periodSeconds: 5        #重试时间间隔
            exec:
              command:
              - cat
              - /tmp/healthy
      
      kubectl apply -f liveness-exec.yaml
      [root@k8s01 test1]# kubectl get pods -o wide
      NAME            READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
      liveness-exec   1/1     Running   1          81s   10.244.236.132   k8s02   <none>           <none>
      
      容器启动设置执行的命令:
       /bin/sh -c "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
      容器在初始化后,首先创建一个 /tmp/healthy 文件,然后执行睡眠命令,睡眠 30 秒,到时间后执行删除 /tmp/healthy 文件命令。而设置的
      存活探针检检测方式为执行 shell 命令,用 cat 命令输出 healthy 文件的内容,如果能成功执行这条命令,存活探针就认为探测成功,否则探测
      失败。在前 30 秒内,由于文件存在,所以存活探针探测时执行 cat /tmp/healthy 命令成功执行。30 秒后 healthy 文件被删除,所以执行命
      令失败,Kubernetes 会根据 Pod 设置的重启策略来判断,是否重启 Pod。

      (2)、通过HTTP方式做健康探测

      示例文件 liveness-http.yaml
      apiVersion: v1
      kind: Pod
      metadata:
        name: liveness-http
        labels:
          test: liveness
      spec:
        containers:
        - name: liveness
          image: mydlqclub/springboot-helloworld:0.0.1
          livenessProbe:
            initialDelaySeconds: 20   #延迟加载时间
            periodSeconds: 5          #重试时间间隔
            timeoutSeconds: 10        #超时时间设置
            httpGet:
              scheme: HTTP
              port: 8081
              path: /actuator/health
      
      上面 Pod 中启动的容器是一个 SpringBoot 应用,其中引用了 Actuator 组件,提供了 /actuator/health 健康检查地址,存活探针可以使用
      HTTPGet 方式向服务发起请求,请求 8081 端口的 /actuator/health 路径来进行存活判断:
      
      任何大于或等于200且小于400的代码表示探测成功。
      任何其他代码表示失败。
      
      如果探测失败,则会杀死 Pod 进行重启操作。
      
      httpGet探测方式有如下可选的控制字段:
      scheme: 用于连接host的协议,默认为HTTP。
      host:要连接的主机名,默认为Pod IP,可以在http request head中设置host头部。
      port:容器上要访问端口号或名称。
      path:http服务器上的访问URI。
      httpHeaders:自定义HTTP请求headers,HTTP允许重复headers。

      (3)、通过TCP方式做健康探测

      示例文件 liveness-tcp.yaml
      apiVersion: v1
      kind: Pod
      metadata:
        name: liveness-tcp
        labels:
          app: liveness
      spec:
        containers:
        - name: liveness
          image: nginx
          livenessProbe:
            initialDelaySeconds: 15
            periodSeconds: 20
            tcpSocket:
              port: 80
      TCP 检查方式和 HTTP 检查方式非常相似,在容器启动 initialDelaySeconds 参数设定的时间后,kubelet 将发送第一个 livenessProbe 
      探针,尝试连接容器的 80 端口,如果连接失败则将杀死 Pod 重启容器。

      2、ReadinessProbe 探针使用示例

      Pod 的ReadinessProbe 探针使用方式和 LivenessProbe 探针探测方法一样,也是支持三种,只是一个是用于探测应用的存活,一个是判断是否
      对外提供流量的条件。这里用一个 Springboot 项目,设置 ReadinessProbe 探测 SpringBoot 项目的 8081 端口下的 /actuator/health 
      接口,如果探测成功则代表内部程序以及启动,就开放对外提供接口访问,否则内部应用没有成功启动,暂不对外提供访问,直到就绪探针探测成功。
      示例文件 readiness-exec.yaml
      apiVersion: v1
      kind: Service
      metadata:
        name: springboot
        labels:
          app: springboot
      spec:
        type: NodePort
        ports:
        - name: server
          port: 8080
          targetPort: 8080
          nodePort: 31180
        - name: management
          port: 8081
          targetPort: 8081
          nodePort: 31181
        selector:
          app: springboot
      ---
      apiVersion: v1
      kind: Pod
      metadata:
        name: springboot
        labels:
          app: springboot
      spec:
        containers:
        - name: springboot
          image: mydlqclub/springboot-helloworld:0.0.1
          ports:
          - name: server
            containerPort: 8080
          - name: management
            containerPort: 8081
          readinessProbe:
            initialDelaySeconds: 20   
            periodSeconds: 5          
            timeoutSeconds: 10   
            httpGet:
              scheme: HTTP
              port: 8081
              path: /actuator/health

      3、ReadinessProbe + LivenessProbe 配合使用示例

      一般程序中需要设置两种探针结合使用,并且也要结合实际情况,来配置初始化检查时间和检测间隔,下面列一个简单的 SpringBoot 项目的 Deployment 例子。

      apiVersion: v1
      kind: Service
      metadata:
        name: springboot
        labels:
          app: springboot
      spec:
        type: NodePort
        ports:
        - name: server
          port: 8080
          targetPort: 8080
          nodePort: 31180
        - name: management
          port: 8081
          targetPort: 8081
          nodePort: 31181
        selector:
          app: springboot
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: springboot
        labels:
          app: springboot
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: springboot
        template:
          metadata:
            name: springboot
            labels:
              app: springboot
          spec:
            containers:
            - name: readiness
              image: mydlqclub/springboot-helloworld:0.0.1
              ports:
              - name: server 
                containerPort: 8080
              - name: management
                containerPort: 8081
              readinessProbe:
                initialDelaySeconds: 20 
                periodSeconds: 5      
                timeoutSeconds: 10        
                httpGet:
                  scheme: HTTP
                  port: 8081
                  path: /actuator/health
               livenessProbe:
                  initialDelaySeconds: 30 
                  periodSeconds: 10 
                  timeoutSeconds: 5 
                  httpGet:
                    scheme: HTTP
                    port: 8081
                    path: /actuator/health
               
      #kubectl taint nodes k8s01 node-type=production:NoSchedule
      以后试验方便镜像扔一个k8s02就好

      4、startupProbe启动探测

      1、三种探针
      livenessProbe:用于探测容器是否运行。如果存活探测失败,则 kubelet 会杀死容器,并且容器将受到其重启策略的影响决定是否重启。如果容器
      不提供存活探针,则默认状态为 Success。 
      readinessProbe:一般用于探测容器内的程序是否健康,容器是否准备好服务请求。如果就绪探测失败,endpoint 将从与 Pod 匹配的所有 
      Service 的端点中删除该 Pod 的 IP 地址。初始延迟之前的就绪状态默认为 Failure。如果容器不提供就绪探针,则默认状态为 Success。 
      startupProbe: 探测容器中的应用是否已经启动。如果提供了启动探测(startup probe),则禁用所有其他探测,直到它成功为止。如果启动探测失
      败,kubelet 将杀死容器,容器服从其重启策略进行重启。
      如果容器没有提供启动探测,则默认状态为成功 Success。 
      
      可以自定义在 pod 启动时是否执行这些检测,如果不设置,则检测结果均默认为通过,如果设置,则顺序为 startupProbe>readinessProbe>
      livenessProbe。
       
      2、为什么要用 startupProbe? 
      在 k8s 中,通过控制器管理 pod,如果更新 pod 的时候,会创建新的 pod,删除老的 pod,但是如果新的 pod 创建了,pod 里的容器还没完成
      初始化,老的 pod 就被删除了,会导致访问 service 或者ingress 时候,访问到的 pod 是有问题的,所以 k8s 就加入了一些存活性探针:
      livenessProbe、就绪性探针 readinessProbe 以及这节课要介绍的启动探针 startupProbe。 
      
      startupProbe 是在 k8s v1.16 加入了 alpha 版,官方对其作用的解释是: 
      Indicates whether the application within the Container is started. All other probes are 
      disabled if a startup probe is provided, until it succeeds. If the startup probe fails, the kubelet kills the 
      Container, and the Container is subjected to its restart policy. If a Container does not provide a startup probe, 
      the default state is Success 
      翻译:判断容器内的应用程序是否已启动。如果提供了启动探测,则禁用所有其他探测,直到它成功为止。如果启动探测失败,kubelet 将杀死容器,
      容器将服从其重启策略。如果容器没有提供启动探测,则默认状态为成功。 
      注意:不要将 startupProbe 和 readinessProbe 混淆。
      
      3、什么时候会用 startupProbe 呢?
      正常情况下,我们会在 pod template 中配置 livenessProbe 来探测容器是否正常运行,如果异常则会触发restartPolicy 重启容器(因为默
      认情况下 restartPolicy 设置的是 always)。
      如下:
      livenessProbe:
        httpGet:
          path: /test
          port: 80
        failureThreshold: 1
        initialDelaySeconds: 10
        periodSeconds: 10
      #上面配置的意思是容器启动 10s 后每 10s 检查一次,允许失败的次数是 1 次。如果失败次数超过 1 则会触发 restartPolicy。 
      #但是有时候会存在特殊情况,比如服务 A 启动时间很慢,需要 60s。这个时候如果还是用上面的探针就会进入死循环,因为上面的探针 10s 后就开
      始探测,这时候我们服务并没有起来,发现探测失败就会触发restartPolicy。这时候有的朋友可能会想到把 initialDelay 调成 60s 不就可以了
      ?但是我们并不能保证这个服务每次起来都是 60s,假如新的版本起来要 70s,甚至更多的时间,我们就不好控制了。有的朋友可能还会想到把失败
      次数增加,比如下面配置: 
      livenessProbe:
        httpGet:
          path: /test
          port: 80
        failureThreshold: 5
        initialDelaySeconds: 60
        periodSeconds: 10
      
      #这在启动的时候是可以解决我们目前的问题,但是如果这个服务挂了呢?如果 failureThreshold=1 则10s 后就会报警通知服务挂了,如果设置了
      failureThreshold=5,那么就需要 5*10s=50s 的时间,在现在大家追求快速发现、快速定位、快速响应的时代是不被允许的。 在这时候我们把
      startupProbe 和 livenessProbe 结合起来使用就可以很大程度上解决我们的问题。 如下: 
      startupProbe:
        httpGet:
          path: /test
          port: 80
        failureThreshold: 10
        initialDelaySeconds: 10
        periodSeconds: 10
      #上面的配置是只有 startupProbe 探测成功后再交给 livenessProbe。我们 startupProbe 配置的是10*10s,也就是说只要应用在 100s 内
      启动都是 OK 的,而且应用挂掉了 10s 就会发现问题。 其实这种还是不能确定具体时间,只能给出一个大概的范围。我个人认为对服务启动时间的
      影响因素太多了,有可能是应用本身,有可能是外部因素,比如主机性能等等。我们只有在最大程度上追求高效、稳定,但是我们不能保证 100%稳定
      ,像阿里这样的大企业对外宣称的也是 5 个 9,6 个 9 的稳定率,如果出问题了,不好意思你恰恰不在那几个 9 里面,所以我们自己要做好监控有
      效性,告警的及时性,响应的快速性,处理的高效性
      
      4、K8s 的 LivenessProbe 和ReadinessProbe 的启动顺序问题
      LivenessProbe 会导致 pod 重启,ReadinessProbe 只是不提供服务 
      我们最初的理解是 LivenessProbe 会在 ReadinessProbe 成功后开始检查,但事实并非如此。 kubelet 使用存活探测器来知道什么时候要重启容
      器。 例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。 这样的情况下重启容器有助于让应用程序在有问题的情
      况下可用。 
      kubelet 使用就绪探测器可以知道容器什么时候准备好了并可以开始接受请求流量, 当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作
      就绪了。这种信号的一个用途就是控制哪个 Pod 作为 Service 的后端。 在 Pod 还没有准备好的时候,会从 Service 的负载均衡器中被剔除的。 
      
      kubelet 使用启动探测器(startupProbe)可以知道应用程序容器什么时候启动了。 如果配置了这类探测器,就可以控制容器在启动成功后再进行存
      活性和就绪检查, 确保这些存活、就绪探测器不会影响应用程序的启动。 这可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀
      掉。 
      真正的启动顺序 
      
      官方文档:Caution: Liveness probes do not wait for readiness probes to succeed. If you want to wait before executing
      a liveness probe you should use initialDelaySeconds or a startupProbe. 
      也就是 Liveness probes 并不会等到 Readiness probes 成功之后才运行根据上面的官方文档,Liveness 和 readiness 应该是某种并发的
      关系
      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_13236892/6151511,作者:哭泣的馒头,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:openGauss备份恢复之gsql、navicat

      下一篇:Windows里的grep——2.findStr

      相关文章

      2025-05-19 09:04:53

      容器技术-Docker 容器的端口发布

      容器技术-Docker 容器的端口发布

      2025-05-19 09:04:53
      Docker , 容器 , 指定 , 映射 , 端口
      2025-05-14 09:51:21

      Docker大学生看了都会系列(十、Docker网络)

      docker使用Linux桥接网卡,在宿主机虚拟一个docker容器网桥(docker0),docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网络网关。

      2025-05-14 09:51:21
      docker , Docker , 容器 , 宿主机 , 模式 , 网桥 , 网络
      2025-05-14 09:51:21

      Docker大学生看了都会系列(三、常用帮助、镜像、容器命令)

      Docker大学生看了都会系列(三、常用帮助、镜像、容器命令)

      2025-05-14 09:51:21
      container , docker , 命令 , 容器 , 查看 , 镜像
      2025-05-12 08:43:47

      盛最多水的容器

      给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

      2025-05-12 08:43:47
      lt , 容器 , 示例
      2025-05-09 08:50:35

      STL:Stack和Queue的模拟实现

      适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。

      2025-05-09 08:50:35
      deque , queue , stack , 元素 , 容器 , 底层 , 适配器
      2025-05-09 08:20:32

      STL:模版进阶 | Priority_queue的模拟实现

      模板参数分类为类型形参与非类型形参。

      2025-05-09 08:20:32
      函数 , 参数 , 容器 , 模板 , 模版 , 类型
      2025-05-07 09:09:52

      【C++/STL】stack/queue的使用及底层剖析&&双端队列&&容器适配器

      适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。

      2025-05-07 09:09:52
      deque , queue , stack , STL , 容器
      2025-05-06 09:19:21

      【Linux 从基础到进阶】Kubernetes 集群搭建与管理

      Kubernetes(简称 K8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。它提供了容器编排功能,能够管理大量的容器实例,并支持应用的自动扩展、高可用性和自愈能力。

      2025-05-06 09:19:21
      Kubernetes , Pod , 容器 , 节点 , 集群
      2025-05-06 09:18:49

      【Linux 从基础到进阶】Docker 网络配置与调优

      Docker 提供了强大的网络功能,使得容器之间、容器与宿主机、容器与外部网络之间的通信变得高效而灵活。理解和优化 Docker 网络配置对于确保容器应用的性能和可靠性至关重要。

      2025-05-06 09:18:49
      Docker , 容器 , 宿主机 , 网络
      2025-04-23 08:18:27

      结构型模式--组合模式

      组合人模式是结构型设计模式的一种,主要是用于解决代码中出现类像树一样进行组合而出现的组合结构的相关操作问题。使其树中的任意一个节点(无论是子节点还是父节点)都可以使用同一套接口进行操作。

      2025-04-23 08:18:27
      元素 , 容器 , 模式 , 组合 , 节点
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5252421

      查看更多

      最新文章

      容器技术-Docker 容器的端口发布

      2025-05-19 09:04:53

      Docker大学生看了都会系列(十、Docker网络)

      2025-05-14 09:51:21

      Docker大学生看了都会系列(三、常用帮助、镜像、容器命令)

      2025-05-14 09:51:21

      盛最多水的容器

      2025-05-12 08:43:47

      STL:模版进阶 | Priority_queue的模拟实现

      2025-05-09 08:20:32

      【Linux 从基础到进阶】Kubernetes 集群搭建与管理

      2025-05-06 09:19:21

      查看更多

      热门文章

      k8s安装gitlab,yaml如何写?

      2023-06-07 07:34:28

      解决mac修改docker容器报错[screen is terminating]

      2023-04-21 03:15:17

      Docker的运行机制

      2023-05-09 06:03:56

      STL容器删除操作

      2023-05-11 06:05:48

      docker关闭容器之间的通信,建立点到点连接

      2023-05-19 05:52:11

      Docker中仓库、镜像和容器用法详解

      2023-05-24 08:14:07

      查看更多

      热门标签

      linux java python javascript 数组 前端 docker Linux vue 函数 shell git 节点 容器 示例
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      了解什么是Docker

      Docker容器时间与宿主机不一致问题解决方案

      【云原生 • Kubernetes】k8s功能特性、k8s集群架构介绍

      Tomcat 是不是已经过气的容器

      【Qt5学习笔记】 2.2_容器

      Docker 添加容器到一个网络

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号