由于开发一个Python程序时需要依赖大量的三方库包,且python2和3本身就有互不兼容的地方,我们往往需要一个隔离的环境,来避免版本影响造成的bug。

传统的做法大多数人可能会选择virtualenv来隔离,但是它有很多明显的缺点:
而随着容器技术的日渐成熟和普及,Docker无疑成为解决这个问题的最优解
本文将主要介绍docker和flask的配合开发
步骤:
1.安装Docker(这里不详细介绍)
# 参考命令 sudo wget -qO- https://get.docker.com/ | sh
2.应用目录结构
├──fanxiangce
_docker
├── Dockerfile
├── Readme.md
└─fanxiangce
└──app
├── manage.py
└── requirements
├── common.txt
3.编写Dockerfile(详细命令解释可以参考https://docs.docker.com/engine/reference/builder/#environment-replacement)
########################################################## # 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
4. build镜像
# 在Dockerfile同级目录下 sudo docker build -t jason/webdemo .
成功后显示Successfully,同时返回镜像ID,如图:
5.查看并启动镜像
注意,此处-p映射的端口(主机端口:容器端口),容器端口应与flask应用定义的端口一致
sudo docker images sudo docker run -it --name webdemo -p 8000:8000 jason/webdemo /bin/bash
6.在容器中启动flask应用
python manage.py runserver -p 8000
启动成功如下截图:
7.在浏览器输入127.0.0.1:8000即可访问应用
8.后续
如果容器关闭后需要再次进入,可以用如下命令
# 查看当前容器 sudo docker ps -a # 启动容器 docker start webdemo # 进入容器 docker attach webdemo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# docker
# python
# python环境
# 运行python
# python脚本在docker上运行的方法
# Docker部署Python爬虫项目的方法步骤
# Docker制作Python运行环境基础镜像的方法步骤
# PyCharm使用Docker镜像搭建Python开发环境
# docker-py 用Python调用Docker接口的方法
# Docker-client for python详解及简单示例
# python脚本监控docker容器
# Python如何操作docker redis过程解析
# 镜像
# 就会
# 就有
# 有很多
# 可以用
# 详细介绍
# 如图
# 大多数人
# 最优
# 三方
# 解决这个问题
# 大家多多
# 应与
# 时需
# 目录下
# replacement
# run
# web
# application
# py
相关文章:
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
如何构建满足综合性能需求的优质建站方案?
代购小票制作网站有哪些,购物小票的简要说明?
制作营销网站公司,淘特是干什么用的?
如何在阿里云高效完成企业建站全流程?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何用西部建站助手快速创建专业网站?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何挑选高效建站主机与优质域名?
个人摄影网站制作流程,摄影爱好者都去什么网站?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何高效搭建专业期货交易平台网站?
如何配置支付宝与微信支付功能?
如何注册花生壳免费域名并搭建个人网站?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
C++中引用和指针有什么区别?(代码说明)
建站之星会员如何解锁更多建站功能?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
ppt制作免费网站有哪些,ppt模板免费下载网站?
常州企业网站制作公司,全国继续教育网怎么登录?
Python路径拼接规范_跨平台处理说明【指导】
南宁网站建设制作定制,南宁网站建设可以定制吗?
广州商城建站系统开发成本与周期如何控制?
如何在云主机快速搭建网站站点?
如何在VPS电脑上快速搭建网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何设置并定期更换建站之星安全管理员密码?
建站之星后台管理:高效配置与模板优化提升用户体验
小型网站建站如何选择虚拟主机?
如何快速搭建响应式可视化网站?
宝塔新建站点报错如何解决?
如何通过虚拟主机空间快速建站?
香港服务器选型指南:免备案配置与高效建站方案解析
如何通过可视化优化提升建站效果?
制作农业网站的软件,比较好的农业网站推荐一下?
Swift开发中switch语句值绑定模式
如何解决ASP生成WAP建站中文乱码问题?
网站制作软件有哪些,制图软件有哪些?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在云主机上快速搭建多站点网站?
建站之星下载版如何获取与安装?
*请认真填写需求信息,我们会在24小时内与您取得联系。