flask程序以docker形式发布
时间:2019-11-27
本文章向大家介绍flask程序以docker形式发布,主要包括flask程序以docker形式发布使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
flask程序以docker形式发布
docker镜像制作
- flask项目结构如下图所示
- 在venv环境下执行命令
pip freeze > requirements.txt
,将项目依赖的第三方包写入文件 - 进入flask项目主目录创建Dockerfile文件,并写入一下内容
FROM centos-with-python #该镜像为整合python3和centos7后的自定义镜像
MAINTAINER username #作者信息
# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
ADD . /app
EXPOSE 5000
CMD python manage.py runserver --host 0.0.0.0
- 在项目主目录中执行
docker build -t algorithm1 .
制作docker镜像,镜像被命名为algorithm1
root@ThinkPad-X280:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
algorithm1 latest e9238b1b60ac About an hour ago 1.42GB
centos-with-python latest e96f7cfd1865 3 days ago 1.09GB
python 3 a2aeea3dfc32 10 days ago 932MB
ubuntu 16.04 5f2bf26e3524 3 weeks ago 123MB
ubuntu latest 775349758637 3 weeks ago 64.2MB
centos 7.6.1810 f1cb7c7d58b7 8 months ago 202MB
python 2.7.15 afc94ac1e19b 8 months ago 925MB
docker镜像管理
- 镜像查看
root@ThinkPad-X280:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
algorithm1 latest e9238b1b60ac About an hour ago 1.42GB
centos-with-python latest e96f7cfd1865 3 days ago 1.09GB
python 3 a2aeea3dfc32 10 days ago 932MB
ubuntu 16.04 5f2bf26e3524 3 weeks ago 123MB
ubuntu latest 775349758637 3 weeks ago 64.2MB
centos 7.6.1810 f1cb7c7d58b7 8 months ago 202MB
python 2.7.15 afc94ac1e19b 8 months ago 925MB
- 容器创建
root@ThinkPad-X280:~# docker create -i algorithm1
ad82e763f581b70c0127bdebb9e92e719ff397e513922a98d451934faa989c1e
- 查看已有容器
root@ThinkPad-X280:/home/zhangcc/Downloads# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad82e763f581 algorithm1 "/bin/sh -c 'python …" 8 minutes ago Created interesting_dirac
071a79a1f46a algorithm1 "/bin/sh -c 'python …" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp infallible_roentgen
- 启动指定容器
docker start ad82e763f581
- 直接创建并启动容器(交互式)
docker run -dit -p 5000:5000 algorithm1
日志
docker镜像在ubuntu中的默认日志位置为
/var/lib/docker/containers
中,该文件夹下每个容器以id为目录名形成一个子文件夹,日志文件位于.-json.log中。
交互式日期访问命令为
docker attach c74b0718f426
,推出时为防止容器进程终端,勿使用ctr+c
,请使用ctr+q
或ctr+p
.
- docker镜像导入导出
导出:docker save algorithm1 > ./photovoltaic.tar#algorithm1为镜像的名称
导入:cat ./photovoltaic.tar |docker import - alg-pho:1#导入后的镜像名可自定义
原文地址:https://www.cnblogs.com/crazysquirrel/p/11941818.html
- Python机器学习的练习二:多元线性回归
- 熔断器 Hystrix 源码解析 —— 命令合并执行
- Python机器学习的练习一:简单线性回归
- Dubbo源码解析 —— zookeeper连接
- 浣熊检测器实例, 如何用TensorFlow的Object Detector API来训练你的物体检测器
- 用Keras进行深度学习模式的正则化方法:Dropout
- 用深度学习硬件的闲置时间,来挖比特币
- 深度学习:如何理解tensorflow文本蕴含的原理
- 重磅!腾讯与科大讯飞技术共创,Google ProtoBuf进入TARS家族!
- 深度学习与R语言
- 在Keras中展示深度学习模式的训练历史记录
- 分析漏洞利用工具包 Archie和Astrum工具包
- 手游热更新方案xLua开源:Unity3D下Lua编程解决方案
- 如何为Keras中的深度学习模型建立Checkpoint
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TypeScript里的完整函数定义语法
- TypeScript里的类型为any和泛型的区别
- 乐观锁、悲观锁,这一篇就够了!
- 面向切片编程(AOP)应用的一些实际例子
- 计数计量单位KMGTPEZY【计算机】【天文】
- 不用临时的变量 优雅、高效的交换两个数方法
- SAP offline OData插件的JavaScript代码是如何调用到Android平台的Java代码的
- 一个占据SAP BSP应用占据存储空间的小工具
- 基于Golang的逃逸分析(Language Mechanics On Escape Analysis)
- SAP数据库表DDLOG的设计原理
- SAP UI5框架Component.js里extend函数的实现原理
- 冒泡排序的终极改进优化
- alpine安装sshd/ssh server
- 使用jstack检测Java应用的死锁(deadlock)状态
- 使用xdebug对php做性能分析调优