Dockerfile构建一个Python Flask 镜像

目录
  • 1.Python 程序
  • 2.Dockerfile
  • 3.开始构建一个小的demo

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 -

到此这篇关于Dockerfile构建一个Python Flask 镜像的文章就介绍到这了,更多相关Dockerfile构建一个Python Flask 镜像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker 镜像分层及dockerfile 编写技巧

    docker镜像分层 分层介绍 Dockerfile中的每个指令都会创建一个新的镜像层 镜像层将被缓存和复用 当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效 某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件 Docker镜像原理 Docker镜像是由特殊的文件系统叠加而成 ·最底端是bootfs,并使用宿主机的bootfs ·第二层是r

  • Dockerfile构建自定义镜像的实现

    目录 前言 Dockerfile简介 Dockerfile构建镜像的流程 Dockerfile使用 前言 前面文章中使用docker运行容器使用的镜像都是从dockerhub上远程pull下来的,那么我们能不能构建自己的镜像呢?答案是肯定滴,可以通过Dockerfile构建自己的镜像,Dockerfile本身并不难,就是一堆命令,让小编觉得有难度的地方是如何使用Dockerfile的这些命令从更高一层的角度上更好的去构建自己的镜像,我们就一起来看看吧. Dockerfile简介 Dockerfi

  • Docker中Dockerfile制作镜像的方法步骤

    目录 1.基于容器制作 2. 基于Dockerfile制作镜像 2.1 Dockerfile命令 2.2 简单示例 docker 镜像的制作,可以基于容器创建镜像,也可基于 dockerfile 构建镜像.但需要注意的是,我们并不是真正"创建"新镜像,而是基于一个已有的基础镜像,如 centos 或 ubuntu 等,构建新镜像而已. 1.基于容器制作 联合文件系统(UnionFS)挂载提供了容器的文件系统,任何对容器内文件系统的改动都会被写入到新的文件层中,这个文件层归创建它的容器所

  • 使用Dockerfile构建docker镜像

    今天我们看看Dockerfile创建的方法. 构建docker镜像,有两种方法: 1.一种是使用docker commit命令 2.另外一种是基于docker build命令和dockerfile文件 通常情况下,dockerfile构建镜像比docker commit命令构建 镜像更加灵活,因此采用后者较多. 使用Dockerfile构建docker镜像 1.什么是Dockerfile? dockerfile是一个文件,它是使用DSL语法编写一个文件,之后使用docker build命令基于该

  • Dockerfile构建一个Python Flask 镜像

    目录 1.Python 程序 2.Dockerfile 3.开始构建一个小的demo 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 WOR

  • 详解如何在ChatGPT内构建一个Python解释器

    目录 下面是初始化ChatGPT的命令: 总结 引用:Art Kulakov <How to Build a Python Interpreter Inside ChatGPT> 这个灵感来自于一个类似的故事,在ChatGPT里面建立一个虚拟机(Building A Virtual Machine inside ChatGPT).给我留下了深刻的印象,并决定尝试类似的东西,但这次不是用Linux命令行工具,而是让ChatGPT成为我们的Python解释器. 下面是初始化ChatGPT的命令:

  • docker使用Dockerfile构建镜像的方法

    构建镜像 前面我们使用各种镜像进行测试演示,很多情况下我们是需要自己的镜像,满足自己业务需要的镜像,这就需要我们能够定制自己需要的镜像,构建 Docker 镜像有以下两种方法. 使用 docker commit 命令. 使用 docker build 命令和 Dockerfile 构建文件. 现在我们不推荐使用 docker commit 命令,而应该使用更灵活.更强大的 Dockerfile 来构建 Docker 镜像. 1.使用 commit 命令构建 docker commit 命令是创建

  • 基于centos自己构建一个tomcat镜像的实现

    写个程序,要输出hello world才开心,同样,学习docker,自己构建镜像才算完事. 说正事: 先放linux用软件链接,自行下载 apache-tomcat-8.0.26 jdk8 构建镜像 先通过你自己以及启动的容器,构建镜像,这样做的目的比如:你运行了mysql镜像,但是没有挂载数据.配置等目录到宿主机,那么迁移到话,就需要吧整个镜像迁移,此时通过如下命令构建(当然镜像迁移也是docker的本身目的) docker commit -a="作者" 容器ID或者容器别名 构建

  • 使用Dockerfile构建java web环境

    用dockerfile构建一个Java的web环境,主要分为2步,第一步是在镜像中安装jdk并配置环境变量,第二步是安装tomcat. 先贴一下完整的dockerfile FROM ubuntu:14.04 MAINTAINER *** "***@******.com" RUN apt-get update ADD jdk-8u77-linux-x64.tar.gz /usr/local/java ENV JAVA_HOME /usr/local/java/jdk1.8.0_77 EN

  • Python Flask前后端Ajax交互的方法示例

    之前总结过flask里的基础知识,现在来总结下flask里的前后端数据交互的知识,这里用的是Ajax 一. post方法 1.post方法的位置:在前端HTML里,绑定在一个按钮的点击函数里,或者一个鼠标输入框点击离开事件. (1)数据附在URL里(请求路径),发送到后端. /*前端HTML<script>里:*/ $.post("/js_post/"+ip, data_to_backend, function(data){alert("success "

  • Docker构建python Flask+ nginx+uwsgi容器

    安装Nginx 首先拉下centos镜像docker pull centos 我们安装最新的nginx1.19版本:下载地址 将centos镜像运行起来并进入: docker run --name ver -d -p 8051:80 -it nginx_start 将nginx-1.19.0.tar.gz这个包放入容器里面: docker cp nginx-1.19.0.tar.gz 10e87af84c05:/root(10e87af84c05为centos容器id) 安装nginx前先装一些

  • 使用Vue.js和Flask来构建一个单页的App的示例

    在这个教程中,我们将讲解如何将vue.js单页应用与Flask后端进行连接. 一般来说,如果你只是想通过Flask模板使用vue.js库也是没有问题的.但是,实际上是一个很明显的问题那就是,Jinja(模板引擎)也和Vue.js一样采用双大括号用于渲染,但只是一个还算过的去的解决方案. 我想要一个不同的例子.如果我需要建立一个单页应用程序(应用程序使用单页组成, vue-router 在HTML5的History-mode以及其他更多好用的功能)用vue.js,由Flask提供Web服务?简单地

随机推荐