无法调用docker容器

时间:2017-06-24 12:41:19

标签: python 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

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

2 个答案:

答案 0 :(得分:0)

RUN是一个Dockerfile指令,用于在构建时运行命令以生成图像。

运行容器所需的是定义CMD,它表示执行docker run ...

作为容器运行的程序

变化:

RUN python app.py &

要:

CMD python app.py

答案 1 :(得分:0)

问题已解决。

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

FROM ubuntu:16.04

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

运行apt-get install -y libavresample-dev

各种Python和C / build deps

运行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

RUN mkdir -p~ / opencv

运行cd~ / opencv

运行apt-get install -y vim

RUN pip install boto3

RUN pip install boto

RUN pip安装瓶

运行pip install pathlib

RUN pip install scikit-video

EXPOSE 5000

COPY。 /应用 WORKDIR / app

ENTRYPOINT [“python”]

CMD [“app.py”]