Docker 使用 AWS 时在 PATH 中找不到可执行文件 batch/ECS

Docker executable not found in PATH when using AWS batch/ECS

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

我的 Docker 图片有问题吗?

我已经在本地构建了 Docker 映像,它 运行 在本地没问题。我将图像推送到 AWS 存储库,并将此远程图像拉到我的本地计算机也正确 运行s。

问题

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

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 启动 EC2 并通过 ssh 进入它时,我可以看到 Docker 已经安装。例如,docker run 工作正常。

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

当我改为尝试 运行 命令时 echo hello 这工作正常。

感谢您提供的任何 advice/help。

更新 - 答案

@samtoddler 帮助我意识到我只需要

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

在命令语句中

这个错误

CannotStartContainerError: Error response from daemon:

这意味着它来自 docker 守护程序,因此 docker 正在执行它的工作。

您的 docker 图像、它的打包方式以及您尝试传递所有这些变量的方式似乎有些问题。

请查看有关如何使用 ENTRYPOINT 和 CMD 的 Docker Image CMD 部分。

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