Docker容器Touch命令执行失败:execSync参数错误排查
错误原因分析
核心原因是容器ID变量containerid中包含了换行符(\n或\r\n),导致拼接后的命令被拆分成了两行:
- 第一行仅为
docker exec [容器ID],缺少后续要执行的命令参数(比如touch output.txt),不符合docker exec至少需要2个参数的要求,因此抛出错误; - 原本的
touch output.txt被拆到第二行,变成了独立的无效命令(你示例中显示为ls,本质是换行符导致命令拆分)。
而直接在终端执行时,你手动输入的容器ID没有携带换行符,命令是完整的一行,参数传递正常,所以能成功创建文件。
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

