本文目录一览:
构建PythonFlask应用程序的Docker映像
我试图为PythonFlask应用程序构建一个Docker映像,但是有构建问题-所有文件都位于一个名为 web -这是项目结构:
和 app.py 目前的情况如下:
我已经把 Dockerfile 从... :
我试着用 docker build --no-cache --rm -t flask-app
,但它以错误消息结尾:
我认为对您的Dockerfile进行非常小的更改可以解决以下问题:
我刚把完整的路径添加到 requirements.txt ,这可以通过几种不同的方式来完成,比如复制整个目录文件夹,然后构建它。
原文
如何开发一个基于 Docker 的 Python 应用
python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。 工具/原料
- python
- CMD命令行
- windows操作系统 方法/步骤
- 首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。
- 打开文本编辑器,推荐editplus,notepad等,将文件保存成
.py
格式,editplus和notepad支持识别python语法。 脚本第一行一定要写上#!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。 - 编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度。
- 在CMD命令行中,输入 “python” + “空格”,即
python
;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。
如何运用docker配合python开发环境实例
传统的做法大多数人可能会选择virtualenv来隔离,但是它有很多明显的缺点:
- 无法提供完全的隔离
- 如果不想在正式环境中使用,它就会造成差异 而随着容器技术的日渐成熟和普及,Docker无疑成为解决这个问题的最优解。 本文将主要介绍docker和flask的配合开发。 步骤:
- 安装Docker(这里不详细介绍)
参考命令:sudo wget -qO- | sh
- 应用目录结构
├── fanxiangce _docker ├── Dockerfile ├── Readme.md └─fanxiangce └── app ├── manage.py └── requirements ├── common.txt
- 编写Dockerfile
########################################################## # Dockerfile to run a flask-based web application # Based on an centos:7 image ########################################################## # Set the base image to use to centos FROM centos:7 # Set the file maintainer MAINTAINER jasonwang,wjs7740@163.com # Set env varibles used in this Dockerfile (add a unique prefix, such as DOCKYARD) # Local directory with project source ENV DOCKYARD_SRC=fanxiangce # Directory in Container for all project files ENV DOCKYARD_SRCHOME=/opt # Directory in container for project source files ENV DOCKYARD_SRCPROJ=/opt/fanxiangce # Update the defualt application repository source list RUN yum -y install epel-release RUN yum -y install python-pip RUN yum clean all # Copy application source code to SRCDIR COPY $DOCKYARD_SRC $DOCKYARD_SRCPROJ # Create application subdirectories WORKDIR $DOCKYARD_SRCPROJ RUN mkdir log VOLUME ['$DOCKYARD_SRCPROJ/log/'] # Install Python dependencies RUN pip install --upgrade pip RUN pip install -r $DOCKYARD_SRCPROJ/requirements/common.txt # Port to expose EXPOSE 8000 # Copy entrypoint script into the image WORKDIR $DOCKYARD_SRCPROJ
- 构建镜像
在Dockerfile同级目录下执行:
成功后显示sudo docker build -t jason/webdemo .
Successfully
,同时返回镜像ID。 - 查看并启动镜像
注意,此处
-p
映射的端口(主机端口:容器端口),容器端口应与flask应用定义的端口一致:sudo docker images sudo docker run -it --name webdemo -p 8000:8000 jason/webdemo /bin/bash
- 在容器中启动flask应用:
python manage.py runserver -p 8000
- 在浏览器输入
127.0.0.1:8000
即可访问应用。 - 后续
如果容器关闭后需要再次进入,可以用如下命令:
# 查看当前容器 sudo docker ps -a # 启动容器 docker start webdemo # 进入容器 docker attach webdemo