You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用oc命令指定访问Pod内非默认的应用容器获取日志

解决方法

1. 先确认业务容器的名称

执行以下命令查看指定Pod下的所有容器名称:
oc get pod <Pod名称> -n <项目命名空间> -o jsonpath='{.spec.containers[*].name}'
返回结果会包含nginx-jwt-forwarder和业务应用容器名,记下业务容器的名称,下文统一用<业务容器名>指代。

2. 执行正确的日志拉取命令

你之前的命令存在两个问题:未指定执行容器、oc exec参数里直接填写本地路径会被识别为容器内路径,可选择两种方案实现需求:

方案1:使用oc cp直接拉取日志文件(更推荐)

oc cp -c <业务容器名> <Pod名称>:<容器内server.log所在目录>/server.log <本地存储路径>/server.log -n <项目命名空间>
示例:
oc cp -c jboss-app my-pod-123:/opt/jboss/standalone/log/server.log C:/temp/server.log -n prod-project

方案2:使用oc exec结合输出重定向获取日志

oc exec -c <业务容器名> <Pod名称> -n <项目命名空间> -- cat <容器内server.log所在目录>/server.log > <本地存储路径>/server.log

核心参数说明:

  • -c <容器名>:明确指定命令执行的目标容器,不会默认使用nginx转发容器
  • --:分隔oc命令参数和容器内要执行的命令参数,避免参数解析冲突

你收到的报错中两个路径不存在的原因分别为:

  1. 默认进入了nginx容器,该容器内不存在jboss的日志路径
  2. 你把本地路径c:/temp/server.log写在了oc exec的参数里,被oc识别为容器内路径,nginx容器内不存在该路径

内容的提问来源于stack exchange,提问作者Tommy Wy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:57:02