docker容器部署flask单页面应用
本地安装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单页面应用的更多相关文章
- Docker 容器部署 Consul 集群
Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...
- Docker容器部署tomcat出现中文乱码
docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [root@docker1 ~]# docker exec -it 41de9 ...
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- 如何将 asp.net core 应用进行 docker 容器部署
asp.net core 部署在 docker 容器中比较简单,但常因asp.net core程序发布的问题造成容器无法正常启动.现在把详细的操作的步骤记录如下: 一.asp.net core web ...
- nignx部署Vue单页面刷新路由404问题解决
官网说明: https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E8%AD%A6%E5%91%8A 在linux下搭建ngi ...
- 云计算 docker 容器部署
什么是docker容器: 容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会退出.隔离的环境拥有自己的系统文件,ip地址,主机名等kvm虚拟机,linux,系统文件 容器和虚拟化的区别 : ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- 18. docker 容器部署 python-redis
1. 编写 Vagrantfile 并创建虚拟机 并虚拟机绑定外部 192.168.205.10:8888 ip:port # -*- mode: ruby -*- # vi: set ft=ruby ...
- Net Core Docker 容器部署,修改,保存
运行镜像 [root@localhost opt]# docker run -itd -p : microsoft/dotnet:latest 查看运行的docker [root@localhost ...
- Docker容器部署Mysql数据库服务器
本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...
随机推荐
- 初始rust
安装rust 访问rust 按照步骤操作即可,安装很慢,请耐心等待 安装成功之后,请注意在命令行测试 rustc --version,cargo --version看看输出版本信息是否正常,如果不正常 ...
- Java 进阶P-8.9+P-8.10
文件流 File Input Stream File Output Stream 对文件作读写操作 实际工程中已经较少使用 更常用的是以在内存数据或通信数据上建立的流,如数据库的二进制数据读写或网络端 ...
- Spring异步Async和事务Transactional注解
Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效.下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它们之间的 ...
- App测试Android的闪退总结
Android的闪退有三种情况: 第一种:没有任何弹框提示,直接退出 第二种:有弹框提示程序异常 第三种:ANR无响应 三种情况的日志提交和检索方法: 第一种情况:是底层C挂了 **首先:提交客户端 ...
- 面向对象程序设计(三):C++模板operator Type类型转换
学习算法的时候遇到了一个不认识的写法,去网上查了查,看到有一篇写的挺好的,转载过来了 C++隐式类型转换运算符operator type()用法详解 对象向基本数据类型转换: 点击查看代码 #incl ...
- docker-01基本介绍
1.docker出现的背景原因 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代后 ...
- Gitee + Sourcetree 配置公钥 SSH
设置前提 安装Git Git下载 安装sourceTree sourceTree下载 gitee账号 gitee官网 Git设置公钥 1.在安装好 sourcetree 后 点击操作选择在终端中打开 ...
- HTTPS基础原理和配置-2
〇.概述 作为概述,以下是本文要讲的内容.HTTPS 是什么? 每个人都可能从浏览器上认出 HTTPS,并对它有好感.然后再讲一遍基础知识,再详细讲一下协议版本,密码套件(Cipher Suites) ...
- CSS_语法格式
* 格式: 选择器{ 属性名1:属性值1: 属性名2:属性值2: ... } *选择器:筛选具有相似特征的元素 *注意: *没一对属性需要使用":"隔开,对最后一对属性可以不加&q ...
- 安卓逆向.5 xposed 替换方法-(实战贪吃蛇)
代码剖析 调用成功方法 获取类 方法写入 实战例子(贪吃蛇)