无法调用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”]
- 如何从另一个python脚本执行本地python scritp到docker?
- docker集装箱通过港口进行通信
- 为什么在Dockerfile中使用RUN安装自定义的python包不起作用?
- docker的Python脚本不能正确执行
- docker-compose无法parsing服务主机名
- 泊坞窗python:在一个容器中提交的更改,但新的图像不运行
- 将运行在Docker上的应用程序生成的文件保存到主机中的给定path
- 把python-pip放在CentOS的docker镜像上?
- 在Docker中运行的Python / Flask中运行Vision API演示时的StatusCode.UNAUTHENTICATED