Dockerfile构建一个Python Flask 镜像
作者:小叶柏杉 发布时间:2021-11-12 10:04:01
标签:Dockerfile,Python,Flask,镜像
1.Python 程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
2.Dockerfile
FROM python:3.9.5-slim
COPY app.py /src/app.py
RUN pip install flask
WORKDIR /src
ENV FLASK_APP=app.py
EXPOSE 5000
CMD ["flask", "run", "-h", "0.0.0.0"]
3.开始构建一个小的demo
PS E:\images> docker image build -f .\flask_dockerfile -t flask_py .
[+] Building 80.3s (9/9) FINISHED
=> [internal] load build definition from flask_dockerfile 0.0s
=> => transferring dockerfile: 38B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/python:3.9.5-slim 12.7s
=> [internal] load build context 0.0s
=> => transferring context: 152B 0.0s
=> [1/4] FROM docker.io/library/python:3.9.5-slim@sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d2 47.4s
=> => resolve docker.io/library/python:3.9.5-slim@sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d21 0.0s
=> => sha256:f42d92068b29045b6893da82032ca4fcf96193be5dcbdcfcba948489efa9e832 1.37kB / 1.37kB 0.0s
=> => sha256:c71955050276b1e3b4be7e29089e4babeb39957981d162a3d422e084601105d3 7.63kB / 7.63kB 0.0s
=> => sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda 27.15MB / 27.15MB 44.7s
=> => sha256:a1111a8f2ec3f3a8ee44a123047349a70f87d1cfebb9e48b06520d0eed436a71 2.77MB / 2.77MB 9.3s
=> => sha256:445d04774519ca200f5c48fd028beaafb49ca763dd58767f1ae7e3933306394c 10.93MB / 10.93MB 32.9s
=> => sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d216bab7ef04 1.86kB / 1.86kB 0.0s
=> => sha256:24f3f85d41f368fc2dcd569b181ef6cd4c2bee419a32853be2f8c8964cee34af 235B / 235B 11.9s
=> => sha256:d299f7fb612d59c3d87fcb17028a25c02e94722ef6235e60537a12d0e312abfc 2.64MB / 2.64MB 17.4s
=> => extracting sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda 1.3s
=> => extracting sha256:a1111a8f2ec3f3a8ee44a123047349a70f87d1cfebb9e48b06520d0eed436a71 0.2s
=> => extracting sha256:445d04774519ca200f5c48fd028beaafb49ca763dd58767f1ae7e3933306394c 0.5s
=> => extracting sha256:24f3f85d41f368fc2dcd569b181ef6cd4c2bee419a32853be2f8c8964cee34af 0.0s
=> => extracting sha256:d299f7fb612d59c3d87fcb17028a25c02e94722ef6235e60537a12d0e312abfc 0.2s
=> [2/4] COPY app.py /src/app.py 0.1s
=> [3/4] RUN pip install flask 19.8s
=> [4/4] WORKDIR /src 0.0s
=> exporting to image 0.2s
=> => exporting layers 0.2s
=> => writing image sha256:0567a371be3f084fb413092b480735083c224023f8801fc723e228a021ea54b1 0.0s
=> => naming to docker.io/library/flask_py
PS E:\images> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
flask_py latest 0567a371be3f 10 minutes ago 125MB
PS E:\images> docker container run -d -p 5000:5000 0567a371be3f
ceb69c7ce778ebcf48a0ad91eb16902814cb20470ddb16d0ba795baa18cf4b01
访问浏览器本地ip:http://127.0.0.1:5000/
显示Hello, World!
查看容器日志:
PS E:\images> docker logs ceb69c7ce778
* Serving Flask app 'app.py' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://172.17.0.2:5000/ (Press CTRL+C to quit)
PS E:\images> docker logs ceb69c7ce778
* Serving Flask app 'app.py' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://172.17.0.2:5000/ (Press CTRL+C to quit)
172.17.0.1 - - [13/Jan/2022 08:50:31] "GET / HTTP/1.1" 200 -
172.17.0.1 - - [13/Jan/2022 08:50:31] "GET /favicon.ico HTTP/1.1" 404 -
来源:https://blog.csdn.net/weixin_48447848/article/details/122476888
0
投稿
猜你喜欢
- 用Python+ChatGPT批量生成论文概述做算法研究离不开阅读大量论文。从海量论文中找到需要的论文往往耗费算法团队不少的精力。ChatG
- 话不多说,直接上代码import copyimport cv2import numpy as npWIN_NAME = 'draw_
- 突然发现自己对Web前端技术掌握得很少很少,就是自己最感兴趣的XHTML+CSS部分知道也不算多。在XHTML 1.1规定的诸多元素中,我平
- 如下所示:# coding=utf-8import signalimport timedef set_timeout(num, callba
- 脚本架构:domain_test.py:批量解析运行主程序DomainResult.txt:域名解析结果文件domains.txt:解析的域
- 最近项目中需要与管易云erp做对接,看了他的接口文档,php的示例代码,于是用python仿写。其中传的参数data中前面几个json数据是
- 安全公司 Imperva Cloud WAF 保护了全球超过10万个网站,并且每天观察到大约10亿次攻击。他们每天都会检测到成千上万种黑客工
- 如下所示:区别ArrayTensor类型uint8,float32系列{}各类型相互转换uint8转float64:image = imag
- 一、为什么要搭建爬虫代理池在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制,即在某一时间段内,当某个ip的访问次数达到一定的阀值时
- 背景:有时候我们需要在服务器上同时运行多个程式,但是却需要一个一个的打开,比较费时间,而且一旦服务器重启后,不懂程式运行的人受限于环境及代码
- 我们在平常的系统开发中常常会遇到像无限级分类这样的树型结构数据,现提供一个可用的数据库存储过程,可以完成树型结构数据的排序。环境:windo
- 一、前言既然在Pathlib库中提到了glob()函数,那么我们就专门用一篇内容讲解文件名的匹配。其实我们有专门的一个文件名匹配库就叫:gl
- 1、版本说明 :python 2.7.10, Django (1.6.11.6),centos72、步骤说明:A、django 建立项目dj
- 本文实例讲述了Python类的用法。分享给大家供大家参考。具体如下:先看一段代码:#!/usr/bin/env pythonclass Te
- 阅读上一篇:javascript面向对象编程(三)继承是面向对象语言中的一个重要概念,现在我们来探讨一下继承。在网上搜一下javascrip
- 1. 在控制台输入以下命令,检查Jupyter notebook的安装目录jupyter notebook --generate-confi
- 一、使用ImageFolder读取数据集时忽略特定文件如果事先知道需要忽略哪些文件,当然直接从数据集里删除就行了。但如果需要在程序运行时动态
- python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,
- 本文实例讲述了Python面向对象类的继承。分享给大家供大家参考,具体如下:一、概述面向对象编程 (OOP) 语言的一个主要功能就是“继承”
- 本文实例讲述了Python高级变量类型。分享给大家供大家参考,具体如下:目标列表元组字典字符串公共方法变量高级知识点回顾Python 中数据