Docker执行container commit命令修改CMD参数时缺失参数报错如何解决

解决方案
你遇到的报错不是因为缺少Docker必填参数,而是参数的转义写法不符合当前运行环境的Shell解析规则,另外也可以补充容器状态预处理的操作避免异常,具体调整方案如下:
- 若你在Windows CMD/PowerShell环境执行命令,系统不识别外层单引号,需要替换外层单引号为双引号,同时转义内部的双引号,修改后命令如下:
docker container commit --change="CMD [\"java\",\"-jar\",\"/tmp/mytroubleartifact-0.jar\"]" upbeat_brahmagupta a-repo-name-of-choice/some-app-name:tagname2 - 若你在Linux/macOS环境执行仍然报错,检查命令中的HTML转义符
"是否被带入实际执行的指令,直接替换为普通双引号即可:docker container commit --change='CMD ["java","-jar","/tmp/mytroubleartifact-0.jar"]' upbeat_brahmagupta a-repo-name-of-choice/some-app-name:tagname2 - 提交前建议先暂停目标容器,避免生成的镜像包含运行中的脏数据,可提前执行
docker stop upbeat_brahmagupta后再执行commit命令。
内容的提问来源于stack exchange,提问作者harshityadav95
相关产品推荐
相关产品推荐

