简单代码:

  1. from flask import Flask
  2. app=Flask(__name__)
  3. @app.route('/')
  4. def hello():
  5. return 'hello world'
  6. if __name__ == '__main__':
  7. app.run()

app.py

  1. FROM python:3.6
  2. LABEL maintainer="FELIX 1403179190@qq.com"
  3. RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
  4. COPY app.py /app/
  5. WORKDIR /app
  6. EXPOSE 5000
  7. CMD ["python3","app.py"]

Dockerfile

然后执行命令:

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

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

  1. # -*- coding: utf-8 -*-
  2. # @Author : Felix Wang
  3. # @time : 2018/8/9 14:14
  4.  
  5. from flask import Flask
  6. from redis import Redis
  7. import os
  8. import socket
  9.  
  10. app = Flask(__name__)
  11. redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)
  12.  
  13. @app.route('/')
  14. def index():
  15. redis.incr('hits')
  16. return 'Hello Container World! I have been seen {} times and my hostname is {}.\n'.format(str(redis.get('hits')),socket.gethostname())
  17.  
  18. if __name__ == '__main__':
  19. app.run(host='0.0.0.0', port=5000, debug=True)

app.py

  1. FROM python:3.6
  2. LABEL maintainer="FELIX 1403179190@qq.com"
  3. RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask redis
  4. COPY app.py /app/
  5. WORKDIR /app
  6. EXPOSE 5000
  7. CMD ["python3","app.py"]

Dockerfile

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

然后执行命令:

  1. docker run -d --name redis redis 下载并安装运行redis模块容器
  2. docker build -t felix/flask-redis-demo . 将上面的Dockerfile打包成image
  3. 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

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

  1. docker 部署 flask(二)编写及生成镜像。

    简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...

  2. SpringBoot 部署 docker 打包镜像

    SpringBoot 部署 docker 打包镜像 环境: 1.代码编写工具:IDEA 2.打包:maven 3.docker 4.linux 7.JDK1.8 8.Xshell 9.Xftp 第一步 ...

  3. docker介绍和简单使用

    docker介绍 docker 为什么会有docker出现? 一款产品从开发到上线,从操作系统到运行环境,再到应用配置,作为开发+运维直接的协作我们需要关心很多东西,这也是互联网公司不得 不面对问题, ...

  4. 【转载】如何使用docker部署c/c++程序

    原文地址:https://blog.csdn.net/len_yue_mo_fu/article/details/80189035 Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交 ...

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

    .Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...

  6. 使用.NET 6开发TodoList应用(30)——实现Docker打包和部署

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 .NET 6 Web API应用使用最多的场景是作为后端微服务应用,在实际的项目中,我们一般都是通过将应用程序打包成docke ...

  7. 用Docker打包Python运行环境

    虽然Docker作为部署环境打包镜像的工具,和我的科研并没有直接的关系.但我觉得在项目中运用Docker来打包环境依赖也可以大大提高工作效率,于是准备专门学习一下Docker. 1. Docker基础 ...

  8. Docker 打包 部署

    Docker 打包 部署 一贯的开场白,大家好: 开始学习Spring Boot ,同时也再学习 Maven 自动化构建.  项目的部署环境是 Linux 服务器,Docker容器. 之所以写这篇博客 ...

  9. 一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程

    Flask框架有自带的http server,但是缺点非常明显,并发能力,及时响应非常差,只适合开发时自测使用. 在我接触过的项目中,生产环境使用nginx+uWSGI+flask应用程序进行部署服务 ...

随机推荐

  1. Codeforces 1240B. Sequence Sorting

    传送门 分析题目发现如果把某个数 $x$ 往左移,那么之后所有小于 $x$ 的数也都要往左移 如果把 $x$ 往右移,那么之后所有大于 $x$ 的数也都要往右移 考虑我们首先一定有一个操作 $n$ 次 ...

  2. Java 反射理解(二)-- 动态加载类

    Java 反射理解(二)-- 动态加载类 概念 在获得类类型中,有一种方法是 Class.forName("类的全称"),有以下要点: 不仅表示了类的类类型,还代表了动态加载类 编 ...

  3. 怎样使用 v-if 实现 html 元素的显示 / 隐藏?

    1. 首先, 指令后的引号内是可以写 js 表达式的, 这点很重要. v-if 的用法很简单, 只需要给 v-if = " " 的引号内放一个 布尔值 即可. 注意: v-if 的 ...

  4. C#面向对象10 继承

    1.继承: **** 我们可能会在一些类中,写一些重复的成员.我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类. Student,Teacher,Driver ----子类  派生类 ...

  5. Sql Server 导出数据库表结构的SQL查询语句

    --导出数据库所有表 SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colo ...

  6. jQuery实现照片墙,附步骤详解

    现在一直使用vue写项目,发现之前的js都很生疏了,写个小demo练下手,看一下最终效果展示 功能点:点击添加图片随机添加一张图片,图片可以拖动,可以点击删除 技能点: 主要使用了jQuery的一些方 ...

  7. another-redis-desktop-manager

    brew cask install another-redis-desktop-manager

  8. 在不同的Linux发行版上安装TFTP Server

    http://www.davidsudjiman.info/2006/03/27/installing-and-setting-tftpd-in-ubuntu/ http://www.cybercit ...

  9. 【网络协议】动态主机配置协议DHCP

    动态主机配置协议DHCP 当某组织获得一块地址后,就可以为本组织内的主机或者路由器分配IP地址.这个分配工作可以由系统管理员手动通过网络管理工具来完成.也可以由动态主机配置协议(Dynamic Hos ...

  10. PAT Basic 1094 谷歌的招聘 (20 分)

    20 5 23654987725541023819 输出样例 1: 49877 输入样例 2: 10 3 2468024680 输出样例 2: 404 #include <iostream> ...