全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何运用docker配合python开发环境实例

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

传统的做法大多数人可能会选择virtualenv来隔离,但是它有很多明显的缺点:

  1. 无法提供完全的隔离
  2. 如果不想在正式环境中使用,它就会造成差异

而随着容器技术的日渐成熟和普及,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小时内与您取得联系。