本地安装docker,拉取centos镜像。

docker pull centos:7

本地文件结构:

/usr/local/var/tmp/docker_demo

.app

---requirements.txt

---run.py

.Dockerfile

Dockerfile文件内容

FROM centos:7

RUN mkdir /flask_app
COPY ./app/ /flask_app
WORKDIR /flask_app RUN yum -y upgrade && yum -y install python3 RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple EXPOSE 80
ENTRYPOINT pytihon3 run.py runserver

文件逐行参数解析:

FROM centos:7 # centos7打底

RUN mkdir /flask_app  # 在容器内根目录创建一个文件夹
COPY ./app/ /flask_app # 把本地环境中当前路径里面的app文件夹整个文件夹,拷贝到容器内新创建的文件夹下
WORKDIR /flask_app # 容器内主程序文件夹 RUN yum -y upgrade && yum -y install python3 # 安装python3环境,必须要先升级yum,再安装python3,还有参数-y必须加上,
# 否则报错with none-zero code:1 RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 把应用环境依赖装上,带上国内pypi镜像源,可加速安装 EXPOSE 80 # 暴露80端口
ENTRYPOINT pytihon3 run.py runserver # 主程序启动命令。docker容器一旦创建,主程序就自动启动

run.py文件内容:

from flask import Flask

app = Flask(__name__)

@app.route("/index")
def index():
return "Hello World!" if __name__ == "__main__":
app.run(host="0.0.0.0", port=80)

这里IP必须写成“0.0.0.0”

requirements.txt文件内容:

Flask==1.1.4

接下来开始执行命令:

执行命令之前,需要在/usr/local/var/tmp/docker_demo 这个路径下面,因为整个工程代码都在这里

docker build -t demo-dockerflask:v715-demo .
-t demo-dockerflask:v715-demo  自定义docker镜像名称、版本号
 . 指定Dockerfile文件路径

开始创建容器

docker run -d -p 80:80 --name demo-dockerflask-1 demo-dockerflask:v715-demo

-d  是后台运行该容器

-p 80:80 docker端口映射。主机端口:docker开放端口。主机端口80被Docker 开放的 80 端口映射上。“:80”docker开放端口,需要跟容器内部的应用端口一致。容器内部应用,不论是直接runserver的应用,还是配置了uwsgi的应用,还是配置了nginx的应用,都需要跟docker开放端口对应上,否则会在浏览器显示拒绝连接请求。

--name  demo-dockerflask-1   自定义docker容器的名字

demo-dockerflask:v715-demo   创建容器用的 镜像:该镜像的tag

本地浏览器输入url地址:

http://127.0.0.1/index

即可得到

Hello World!

输出结果

docker容器部署flask单页面应用的更多相关文章

  1. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  2. Docker容器部署tomcat出现中文乱码

    docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [root@docker1 ~]# docker exec -it 41de9 ...

  3. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  4. 如何将 asp.net core 应用进行 docker 容器部署

    asp.net core 部署在 docker 容器中比较简单,但常因asp.net core程序发布的问题造成容器无法正常启动.现在把详细的操作的步骤记录如下: 一.asp.net core web ...

  5. nignx部署Vue单页面刷新路由404问题解决

    官网说明: https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E8%AD%A6%E5%91%8A 在linux下搭建ngi ...

  6. 云计算 docker 容器部署

    什么是docker容器: 容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会退出.隔离的环境拥有自己的系统文件,ip地址,主机名等kvm虚拟机,linux,系统文件 容器和虚拟化的区别 : ...

  7. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  8. 18. docker 容器部署 python-redis

    1. 编写 Vagrantfile 并创建虚拟机 并虚拟机绑定外部 192.168.205.10:8888 ip:port # -*- mode: ruby -*- # vi: set ft=ruby ...

  9. Net Core Docker 容器部署,修改,保存

    运行镜像 [root@localhost opt]# docker run -itd -p : microsoft/dotnet:latest 查看运行的docker [root@localhost ...

  10. Docker容器部署Mysql数据库服务器

    本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...

随机推荐

  1. 反射概述-获取字节码Class对象的三种方式

    反射概述 判定结果∶*红色:失败*绿色:成功*一般我们会使用断言操作来处理结果*Assert.assertEquals(期望的结果,运算的结果);补充∶*Before:*修饰的方法会在测试方法之前被自 ...

  2. 增加for循环-泛型的概念

    增加for循环 增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的.它的内部原理其实是个lterator迭代器,所以在遍历的过程中,不能对集 ...

  3. Unreal学习笔记2-绘制简单三角形

    目录 1. 概述 2. 详论 2.1. 代码实现 2.2. 解析:Component 2.3. 解析:材质 2.4. 解析:包围盒 2.5. 解析:Section 3. 其他 4. 参考 1. 概述 ...

  4. Quartz.Net源码Example之Quartz.Examples.AspNetCore

    Quartz.Examples.AspNetCore ​ .NetCore的Web系统,后台主要执行多个触发器任务,前台展示所有触发器信息和正在执行的作业的相关信息,还可以通过访问health-UI来 ...

  5. 【开源】libserial_protocol:适用于单片机的串口通信协议基础库

    借助五一假期,写了一个串口通信协议基础库,虽然写着适用于单片机,但实际上并不限制具体的硬件平台. 特点如下: 不涉及到具体硬件,libserial_protocol 纯软件协议,与具体硬件分离. 内存 ...

  6. 中断ISR技术架构

    架构一 ISR采用立即响应思路,技术架构如下图: 优点:简单. 缺点:处理性能不高,中断优先级规划性不高(仅仅区分CPU的32个优先级别,针对不同类型中断优先级不支持). 选型:对于硬件支持多级中断的 ...

  7. 为什么要使用 chmod 777

    如上图所示, 不使用sudo,报错没有权限 使用sudo,报错找不到命令 只好chmod 777一下了

  8. 2 .NET Core笔试题

    1.说说在Linux系统部署ASP.NET Core项目的步骤. 2.说说热重载是什么. 3.如何理解鉴权和授权两个词 4.说说.NET7包含了几大方向的开发? 5.如何理解云原生? 6.ASP.NE ...

  9. css 显示n行文字的方法 超出的部分用省略号代替

    // 超出的部分用省略号代替 text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; // 显示文字的行数 over ...

  10. 记一次使用tika解析文件文本导致的内存溢出问题

    背景 笔者曾供职于某信息安全公司,接到过一个需求,提取文档中的文本以供后续分析.tika是apache开源的解析文档内容的组件,应用十分广泛.tika几乎支持你能想到的所有文档格式,docx , pp ...