运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知相关的知识,希望对你有一定的参考价值。

我试图将一个简单的Python-Flask应用程序停靠,但是在运行我的容器时遇到错误。

docker:来自守护进程的错误响应:OCI运行时创建失败:container_linux.go:344:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知。

localhost上的Workdir:

/home/ubuntu/flask_web
- app.py
- Dockerfile
- requirements.txt

app.朋友

#flask_web/app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hey, we have Flask in a Docker container'


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

Dockerfile

FROM ubuntu:16.04

MAINTAINER xyz "xyz@gmail.com"

RUN apt-get update 
    && apt-get install -y software-properties-common vim 
    && add-apt-repository ppa:jonathonf/python-3.6 
    && apt-get update -y 
    && apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv 
    && pip3 install --upgrade pip

# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

ENTRYPOINT [ "python" ]

CMD [ "app.py" ]

命令:

docker build -t flask-test:latest .
docker run -p 5000:5000 flask-test

预计:Flask web应该在端口5000上运行

实际结果:

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

在上面的代码构建的docker镜像中没有/usr/bin/python。但是有/usr/bin/python3。所以你可以直接使用python3作为你的ENTRYPOINT或者创建一个符号链接。

以上是关于运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知的主要内容,如果未能解决你的问题,请参考以下文章

CannotStartContainerError:API 错误(400):OCI 运行时创建失败:container_linux.go:348:导致启动容器进程

如何查看docker 里某个容器的的启动命令

如何运行多进程Docker容器

docker下容器怎么执行命令

在 docker 容器中调用 python 子进程时出错

Docker因配置错误无法启动容器时该咋整