docker打包flask简单程序

简单代码:

from flask import Flask
app=Flask(__name__)
@app.route(‘/‘)
def hello():
    return ‘hello world‘
if __name__ == ‘__main__‘:
    app.run()

app.py

FROM python:3.6
LABEL maintainer="FELIX [email protected]"
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python3","app.py"]

Dockerfile

然后执行命令:

docker build -t felix/flask-demo .    打包docker image ls     查看docker run -d felix/flask-demo     运行,-d参数为在后台运行docker ps     查看运行的程序

多模块代码--redis模块和python

# -*- coding: utf-8 -*-
# @Author : Felix Wang
# @time   : 2018/8/9 14:14

from flask import Flask
from redis import Redis
import os
import socket

app = Flask(__name__)
redis = Redis(host=os.environ.get(‘REDIS_HOST‘, ‘127.0.0.1‘), port=6379)

@app.route(‘/‘)
def index():
    redis.incr(‘hits‘)
    return ‘Hello Container World! I have been seen {} times and my hostname is {}.\n‘.format(str(redis.get(‘hits‘)),socket.gethostname())

if __name__ == ‘__main__‘:
    app.run(host=‘0.0.0.0‘, port=5000, debug=True)

app.py

FROM python:3.6
LABEL maintainer="FELIX [email protected]"
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask redis
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python3","app.py"]

Dockerfile

可以看到上面的dockerfile并没有redis模块的安装,通常来说一个模块放在一个容器里面

然后执行命令:

docker run -d --name redis redis    下载并安装运行redis模块容器
docker build -t felix/flask-redis-demo .    将上面的Dockerfile打包成image
docker run -d -p 5000:5000 --link redis --name flask-redis -e REDIS_HOST=redis felix/flask-redis-demo      运行并传递参数以及端口,环境变量  -p指定端口映射,--link指定连接到的容器,之后访问可以直接用别名,-e表示传递参数执行上面代码之后就能通过宿主机访问127.0.0.1:5000

原文地址:https://www.cnblogs.com/felixwang2/p/9444322.html

时间: 2024-10-29 19:35:37

docker打包flask简单程序的相关文章

Docker — 云时代的程序分发方式

要说最近一年云计算业界有什么大事件?Google Compute Engine 的正式发布?Azure入华?还是AWS落地中国?留在每个人大脑中的印象可能各不相同,但要是让笔者来排名的话那么Docker绝对应该算是第一位的.如果你之前听说过它的话,那么也许你会说"没错,就是它",因为几乎世界各地的开发.运维都在谈论着Docker:如果你还没听说过Docker,那么我真的建议你花上10分钟来阅读本文. 1. Docker简介 1.1. 什么是Docker? Docker是一个重新定义了程

.Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing .NET Core 3.0 .NET Core是一个跨平台,高性能,开放源代码框架,用于构建现代的,基于云的,Internet连接的应用程序框架,其具有一下优点和特点: 跨平台:.NET Framework应用程序仅在Windows平台上运行,而.NET Core应用程序可以在Windows平台上开

SpringBoot 部署 docker 打包镜像

SpringBoot 部署 docker 打包镜像 环境: 1.代码编写工具:IDEA 2.打包:maven 3.docker 4.linux 7.JDK1.8 8.Xshell 9.Xftp 第一步:使用idea创建简单的springboot项目 引用一篇别人文章:https://blog.csdn.net/u013777094/article/details/78580710/ 第二步:设置项目生成jar包(两种方式) 1.修改pom文件 <?xml version="1.0"

使用py2exe将python程序打包成exe程序

近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1. 下载py2exe 官网:http://www.py2exe.org/index.cgi/FrontPage 我使用的是py2exe-0.6.9.win32-py2.7.exe 直接安装即可. 安装完成以后,python的Lib/site-packages目录下会多出py2exe目录和egg-in

使用Phar来打包发布PHP程序

简单来说,Phar就是把Java界的jar概念移植到了PHP界. Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstrap loader),Phar可以选择是否进行压缩,可选gzip和bzip2格式. 下面举例说明如何创建和使用Phar: 假设我们的项目名称是user,包含三个文件: user/user.class.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php class user {     pr

sencha touch 扩展篇之将sencha touch打包成安装程序(下)- 使用phonegap打包安装程序

    这讲我们来讲解下如何使用phonegapa创建项目环境并通过她们将sencha touch打包成app,这里我们只讲解打包android的apk,打包ios的过程有点类似,但是需要在mac环境下,最后通过xcode导出成ipa安装程序: 一.phonegap环境搭建: phonegap从3.0开始已经不再使用手动的方式搭建项目了,而是使用command-line命令行工具来搭建项目环境,并且插件引入的机制也在3.0做了调整,采用了模块化的方式,即需要什么功能模块就通过命令行工具来安装对应

Flask 简单使用

一.flask介绍 flask是一个轻量级的web框架,可快速的搭建程序.适用于简单的程序. 二.对比Django组件 1 Django:无socket.中间件.路由系统.视图(CBV,FBV). 模板.ORM.cookie.Session.Admin.Form.缓存.信号.序列化.... 2 Flask:无socket.中间件(扩展).路由系统.视图(CBV).第三方模板(jinja2).cookie.Session(很弱) 三.WSGI web服务网关接口协议(WSGI),功能为创建Sock

C#—使用InstallerProjects打包桌面应用程序

前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘. 下载打包工具 C#打包桌面应用程序有很多种方法,这里介绍一种使用Microsoft Visual Studio Installer Projects工具打包的方法. 首先,我们先创建一个Windows桌面应用,如图: 接下来我们选择工具,点击扩展和更新,如图: 然后我们得到界面如下,如图: 界面默认显示的是已安装的内容,我们仔细看下内容,会发现,这里都是我们已经安

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

本章将和大家简单分享下如何使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:https://www.nuget.org/ 此处我使用的是微软账号进行关联登录 登录成功后就可以管理个人信息了,此处就不做过多的描述了 二.下载nuget.exe文件进行ASP.NET Core类库打包 下载完成后如下: 接着修改类库版本等相关信息,点击类库右键属性并选择打包,如下所示: 修改完成后记得保存并重新生成