Docker部署Flask应用
创建应用
首先,编写一个简单的Flask应用:docker_test/flask_app.py
Docker 安装
请根据自己的操作系统自行安装。
Docker简介
- Docker 镜像
Docker镜像 (Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模版,包含了文件系统。镜像是创建Docker容器的基础。 - Docker 容器
Docker容器 (Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不相见的。 - Docker 仓库
Docker仓库 (Repositort)类似于代码仓库,是Docker集中存放镜像文件的场所。根据公开分享与否,Docker仓库分为公开仓库 (Public)和私有仓库 (Private)两种形式。
目前最大的公开仓库是Docker Hub,存放了大量的镜像供用户下载。
Docker 部署步骤
下载python镜像
可在docker.hub网站上查询python镜像的版本,下载想要的版本
docker pull python:XXX
运行python镜像
docker run -it python:XXX
另起一个控制台窗口,查看上步容器的ID
docker ps|grep python 可以看到当前容器的ID
进入python容器
docker exec -it 容器ID /bin/bash
安装Flask应用所需的依赖包
pip install -r requirements.txt
安装完成后,另起一个窗口,将当前的容器制作成镜像
docker commit 容器ID 新名字
在docker_test/下编写dockfile, 举例
FROM docker_test:v0.1 COPY flask_app.py /flask_app.py EXPOSE 5000 ENTRYPOINT ["python","flask_app.py"]
第一行为基础镜像,即第7步中制作的镜像
第二行是将Python程序导入容器
第三行是暴露python的端口
第四行是运行容器时执行的命令
在docker_test/下制作镜像
docker build -t 镜像名字 .
运行容器
docker run -p5000:5000 镜像名字
调试
Docker部署Flask应用的更多相关文章
- docker 部署 flask(一)配置环境及测试
简介: flask也是要部署的.不能老在我们的pycharm里面跑测试服务器. 各种配置linux,我看就算了吧.我们用docker部署. 也就两三行命令. 一:选择基础镜像 GitHub repo: ...
- docker 部署 flask(二)编写及生成镜像。
简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...
- 基于docker部署flask+gunicorn+nginx
nginx安装在/etc/下,项目映射在docker中的/var/www/下 1.创建docker容器将端口映射出来,将docker外的项目映射到docker中 #docker run -it -p ...
- docker 部署 flask(三)高级编写及生成镜像,安装requirements.txt
简介: 上一篇,我写了如何使用别人的docker基础镜像,生成我们的docker镜像. 也就最基本的flask,没有别的库(包)支持.连数据库支持都没有. 也就让大家了解一下怎么生成镜像而已. 本篇介 ...
- 用docker部署flask+gunicorn+nginx
说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...
- 从零开始docker部署flask
1.下载一个Ubuntu镜像 2.启动镜像,使用apt-get安装python.安装pip,建议也装个vim吧 3.通过以上的容器生成一个新的镜像,命令如下docker commit afcaf46e ...
- 使用docker部署flask遇到的问题
容器内能访问,但是外网映射了端口怎么也访问不了 解决方法: app.run() 添加参数host='0.0.0.0'
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- Docker部署Hadoop集群
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
随机推荐
- 423 Locked
TortoiseSVN提交提示423 Locked的解决办法 . 此办法是阅读官方文档(TortoiseSVN-1.6.16-zh_CN.pdf) 4.21 锁部分提供的办法: 首先选择选择要提交的文 ...
- 理解Java构造器中的"this"
Calling Another Constructor if the first statement of a constructor has the form this(...), then the ...
- JAVA学习笔记--方法中的参数调用是引用调用or值调用
文献来源:<JAVA核心技术卷Ⅰ>,第4章第5节 (没有相关书籍的可看传送门) ps:测试demo因为偷懒,用的是String对象 结论:Java使用的是对象的值引用.即将任何对象所在内存 ...
- 2.Javascript 函数(主要)
定义函数 在JavaScript中,定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述 ...
- jmeter.bat无法启动
jmeter.bat启动时提示:'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件. 学习中遇到的问题: 'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件. ...
- 企业打开云HBase的正确方式,来自阿里云云数据库团队的解读
一.HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性.高性能.高伸缩的分布式存储系统,使用HBase技术可在廉价PC Se ...
- JS当中的无限分类递归树
列表转换成树形结构方法定义: //javascript 树形结构 function toTree(data) { // 删除 所有 children,以防止多次调用 data.forEach(func ...
- Ubuntu配置jdk环境变量
下载jdk,解压到你想要的目录 在/etc/profile里最后添加 export JAVA_HOME=/home/zzs0/Programs/jdk1.8.0_102export JRE_HOME= ...
- 20175203 2018-2019 实验三 《敏捷开发与XP实践》
20175203 2018-2019 实验三 <敏捷开发与XP实践> 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课 ...
- identityserver4踩坑总结
1.在配置id4服务端的时候要注意client里面的 AllowedScopes开放的值要和GetIdentityResources中加入的值是一样的,不然调用以后报{"error" ...