本地安装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. 都用过@Autowired,但你知道它是怎么实现的吗

    前言 在使用Spring开发的时候,配置的方式主要有两种,一种是xml的方式,另外一种是 java config的方式.在使用的过程中java config,我们难免会与注解进行各种打交道,其中,我们 ...

  2. Grafana 系列文章(二):使用 Grafana Agent 和 Grafana Tempo 进行 Tracing

    ️URL: https://grafana.com/blog/2020/11/17/tracing-with-the-grafana-cloud-agent-and-grafana-tempo/ ✍A ...

  3. SOFAJRaft源码阅读-Netty时间轮算法的实践

    SOFAJRaft的定时任务调度器是基于Netty来实现的,所以本文将会基于Netty时间轮算法,然后再结合SOFAJRaft源码进行分析. @Author:Akai-yuan @更新时间:2023/ ...

  4. Map集合概述-Map常用子类

    Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种--对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  5. 为什么称不坑盒子是wps和word使用者的救世主呢?

    不坑盒子 很多朋友在工作过程中需要对Word文档进行编辑处理,如果想让Word排版更有效率可以试试小编带来的这款不坑盒子软件,这是一个非常好用的插件工具,专门应用在Word文档中,支持Office 2 ...

  6. 躬身入局,干货分享,2023年春招后端技术岗(Python)面试实战教程,Offer今始为君发

    早春二月,研发倍忙,杂花生树,群鸥竟飞.为什么?因为春季招聘,无论是应届生,还是职场老鸟,都在摩拳擦掌,秣马厉兵,准备在面试场上一较身手,既分高下,也决Offer,本次我们打响春招第一炮,躬身入局,让 ...

  7. Python:Excel自动化实践入门篇 甲【留言点赞领图书门票】

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s?__biz=MzUxMTgxMzExNQ==&mid=22 ...

  8. [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能

    脊柱放射学持续进展是否显著影响关节功能 Poddubnyy D, et al. EULAR 2015. Present ID: THU0199. 背景: 强直性脊柱炎(AS)患者的机体功能和脊柱活动性 ...

  9. 与时俱进的治疗策略不断提高RA无药缓解机会[EULAR2015_SAT0058]

    随时代变迁而进化的治疗策略不断提高RA无药缓解机会 SAT0058 DMARD-FREE SUSTAINED REMISSION IN RHEUMATOID ARTHRITIS: AN OUTCOME ...

  10. 代码随想录算法训练营day07 | leetcode 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

    LeetCode 454.四数相加II 分析1.0 这个最直接暴力法,不过过于暴力了,害怕.jpg 失误 读题理解失误:题目要求的是四元组的个数,读完题到我这里成了输出四元组,悲哉 分析2.0 记录有 ...