远程登录docker执行shell报错input is not a terminal问题

背景

最近要远程去k8s docker里面获取信息,于是,写了一个如下的命令,执行完之后,报错了。

bash 复制代码
ssh 192.168.100.2 sudo crictl exec -it xxx.docker /usr/bin/lscpu --online --extended

错误信息如下:

time="2025-07-11T21:00:39+08:00" level=fatal msg="execing command in container failed: input is not a terminal"

问题分析

execing command in container failed: input is not a terminal

翻译一下:在容器中执行命令失败:输入不是终端

表明在尝试通过 SSH 登录到宿主机并在 Docker 容器内执行命令时,系统报告输入不是一个终端(input is not a terminal)。这种情况通常是因为试图以交互模式运行命令,但当前环境不支持这种模式。

这就涉及到docker参数问题。

-it 是 Docker 命令中一个常用的选项组合,用于在容器中启动一个交互式终端(Interactive Terminal)。它实际上是两个选项的缩写:

选项 含义
-i 或 --interactive 保持标准输入(STDIN)打开,允许你向容器发送输入(比如键盘输入)。
-t 或 --tty 分配一个伪终端(pseudo-TTY),让你可以像操作真实终端一样与容器交互。

如果需要进入docker,进行交互式操作,则需要-it,如果不需要,则去掉-it。

解决方法

去掉-it即可。

bash 复制代码
ssh 192.168.100.2 sudo crictl exec xxx.docker /usr/bin/lscpu --online --extended
相关推荐
阿狸猿1 小时前
论系统负载均衡设计方法
运维·负载均衡
ZzzZZzzzZZZzzzz…1 小时前
Docker + K8s集群搭建实战:1 Master+2 Node,含Harbor私有仓库与软路由
docker·云原生·容器·kubernetes·容器编排·集群部署·cri-dockerd
minji...1 小时前
Linux 高级IO(四)多路转接之epoll,epoll 模型及原理
linux·运维·服务器·多路转接·epoll·epoll模型·红黑树/就绪队列/回调
bitbrowser1 小时前
2026年Facebook广告账户频频“连坐”被封?聊聊出海投流
运维·服务器·facebook
汽车仪器仪表相关领域1 小时前
Kvaser Hybrid CAN/LIN 单通道三合一总线分析仪:高性价比CAN FD/LIN集成测试利器
运维·服务器·网络·数据挖掘·数据分析·单元测试·集成测试
志栋智能1 小时前
超自动化安全:实现安全运营现代化的关键
大数据·运维·网络·安全·自动化
xier_ran2 小时前
【infra之路】模块三:Kubernetes (下) — 阶段一毕业项目:在集群里跑 PyTorch 训练
pytorch·容器·kubernetes
zzipeng2 小时前
Linux 并发与竞争
java·linux·运维
福大大架构师每日一题2 小时前
YOLO v8.4.56 修复 QNN 导出兼容性:builtin provider wheels 也能稳定导出,Linux x86-64 更友好
linux·运维·yolo
Waay2 小时前
K8s新手实操|emptyDir卷超详细实战(附完整命令+核心理解)
云原生·容器·kubernetes