本地安装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!

输出结果

最新文章

  1. mySQL 中主键值自动增加
  2. [Cordova] Plugin开发架构
  3. Kafka笔记
  4. C++ 之const Member Functions
  5. Linux:安装OpenSSH-Server E:Package openssh-server has no installation candidate
  6. hdu2896病毒侵袭(ac自动机)
  7. System Center的一些资料收集
  8. ajax post方法
  9. iterm快捷键及操作技巧(附Linux快捷键)
  10. 《Head First 设计模式》学习笔记——模板方法模式
  11. 关于UITextfield弹出键盘解决方案
  12. IntelliJ IDEA(九) :酷炫插件系列
  13. c++对象的存储空间
  14. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(8)- 从Raw NAND启动
  15. kubernetes1.5.2 DNS
  16. 伪静态的服务器配置-如何php为 Discuz! X2 配置伪静态
  17. meta-inf文件夹以及MANIFEST.MF文件的作用
  18. android音乐播放器开发 SweetMusicPlayer 摇一摇换歌
  19. hdu3874
  20. sqlserver导出为EXcel--CSV格式

热门文章

  1. final关键字用于修饰局部变量-final关键字用于修饰成员变量
  2. Dubbo 入门系列之基于 Dubbo API 开发微服务应用
  3. CH32芯片_EVT工程配置方法说明
  4. 四、流程控制和break、continue、range函数的讲解
  5. 笔记: C#RabbitMQ初步使用记录
  6. ubuntu18.08安装eigen
  7. 【TS】枚举
  8. JZOJ 3566. 【GDKOI2014】阶乘
  9. Centos 7.x系统下忘记用户登录密码,重置密码的方法
  10. T-SQL——将字符串转为单列