远程登录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
相关推荐
SelectDB17 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker