使用AWS批处理/ECS时,在PATH中找不到Docker可执行文件



我正在尝试使用AWS批处理运行一个简单的Dockerized Python脚本。

我的Docker镜像有问题吗

我已经在本地构建了Docker镜像,它在本地运行良好。我将图像推送到AWS存储库,将此远程图像拉到本地机器也能正常运行。

问题

我已经设置了我的计算环境、作业队列和作业定义,但我得到了这个错误

CannotStartContainerError: Error response from daemon: 
OCI runtime create failed: container_linux.go:370: 
starting container process caused: 
exec: "docker": executable file not found in $PATH: unknown

当我运行时

["docker","run","-t","111111111111.dkr.ecr.us-region-X.amazonaws.com/myimage:latest","python3","hello_world.py","--MSG","ok"]

Docker安装了吗

我使用的是ECS_AL2图像类型。当我用这个AMI和ssh启动EC2时,我可以看到Docker已经安装好了。例如,docker run运行良好。

我的计算环境、作业队列或作业定义是否存在(一般(问题

相反,当我尝试运行命令echo hello时,它可以正常工作。

感谢您提供的任何建议/帮助。

更新-答案

@sam蹒跚学步的孩子帮助我意识到我只需要

["python3","hello_world.py","--MSG","ok"]

在命令语句中

此错误

CannotStartContainerError:来自守护进程的错误响应:

这意味着它来自docker守护进程,所以docker正在完成它的工作。

看起来你的docker图像、它的打包方式以及你试图传递所有vars的方式都有一些问题。

请查看Docker Image CMD部分,了解如何使用ENTRYPOINT和CMD。

这个问题有一些解释,docker-oi-runtime-create-failed-container-linux-go349-starting-container-pro

相关内容

最新更新