【问题标题】:CannotStartContainerError: API error (400): OCI runtime create failed: container_linux.go:348: starting container process causedCannotStartContainerError:API 错误(400):OCI 运行时创建失败:container_linux.go:348:导致启动容器进程
【发布时间】:2018-11-06 15:00:04
【问题描述】:

Docker 容器刚刚运行并停止并在 AWS ECS 中引发以下错误。有人可以帮忙吗。

“CannotStartContainerError: API 错误 (400): OCI runtime create failed: container_linux.go:348: 启动容器进程导致”

我已将入口点设置如下。

["sudo service celeryd start && sudo service celerybeat start && service php7.0-fpm start && service rsyslog start && bash"]

它在本地机器上运行良好。

提前致谢。

【问题讨论】:

    标签: amazon-web-services docker dockerfile amazon-ecs


    【解决方案1】:

    试试

    ["sudo service celeryd start && sudo service celerybeat start && service php7.0-fpm start && service rsyslog start && /bin/bash"]

    或 ["sudo service celeryd start && sudo service celerybeat start && service php7.0-fpm start && service rsyslog start && /bin/sh"]

    【讨论】:

      【解决方案2】:

      可能有几个原因:

      1. 你的本地机器是arm64设备吗,比如m1 mac等

      2. 您的 Fargate 是否设置为使用引力子? 在上述情况下,查看https://docs.docker.com/buildx/working-with-buildx/ 这将允许您跨 CPU 架构进行构建。

      3. 您是否使用了错误架构的图像? 如果是这样,您将需要更改图像的 FROM 设置位置。

      其他一般的东西,你应该使用sleep infinity而不是/bin/sh

      不太可能但也有可能:您的容器的某些部分是否使用 golang?一种可能是您在没有禁用 CGO 的情况下使用 golang 构建了您的应用程序。

      还有一般 docker 建议:您不应该将 PHP 和 celery 放在同一个容器中,通常最好的做法是每个容器有一个主应用程序并使用 TCP 使用容器间通信。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 2018-11-18
        • 2021-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多