无法调用docker容器

使用docker我无法从浏览器调用Web应用程序。

以下是使用的dockerfile:

FROM continuumio/anaconda:latest Expose 5000 ADD . /code-directory WORKDIR code-directory RUN conda install opencv RUN pip install boto3 RUN pip install boto RUN pip install flask RUN pip install pathlib ADD facedetection_video.py facedetection_video.py ADD UI_Interface UI_Interface WORKDIR /UI_Interface COPY . app.py RUN python app.py & 

以下是app.py的内容

 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Flask Dockerized' if __name__ == '__main__': app.run(debug=True,host='0.0.0.0') 

用于生成泊坞窗图像的命令

 docker build -t test1 . 

用于运行容器的命令

 docker run -d -p 5000:5000 test1 

容器的输出状态消息是:

 Exited (0) 3 minutes ago 

在日志中我找不到任何错误消息。 请build议

RUN是一个Dockerfile指令,用于在构build时运行命令来生成映像。

运行容器需要的是定义CMD ,它代表当您执行docker run ...作为容器docker run ...

更改:

 RUN python app.py & 

至:

 CMD python app.py 

问题已解决。

在dockerfile中有错误更改了dockerfile,如下所示:

从ubuntu:16.04

运行mkdir -p / usr / src / app WORKDIR / usr / src / app

运行apt-get install -y libavresample-dev

各种Python和C / build构build

运行apt-get update && apt-get install -y \

 wget \ build-essential \ cmake \ git \ unzip \ pkg-config \ python-dev \ python-opencv \ libopencv-dev \ libav-tools \ libjpeg-dev \ libpng-dev \ libtiff-dev \ libjasper-dev \ libgtk2.0-dev \ python-numpy \ python-pycurl \ libatlas-base-dev \ gfortran \ webp \ python-opencv \ qt5-default \ libvtk6-dev \ zlib1g-dev 

运行apt-get install -y python-pip

运行mkdir -p〜/ opencv

运行cd〜/ opencv

运行apt-get install -y vim

运行pip安装boto3

运行pip安装boto

运行pip安装烧瓶

运行pip安装pathlib

运行pip安装scikit-video

EXPOSE 5000

COPY。 / app WORKDIR / app

ENTRYPOINT [“python”]

CMD [“app.py”]