Dockerfile构建一个Python Flask 镜像

这篇文章主要介绍了Dockerfile构建一个Python Flask 镜像,对正在学习的你有一定的参考价值,需要的小伙伴可以参考一下

目录

1.Python 程序

1

2

3

4

5

6

7

8

9

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

    return 'Hello, World!'

  

2.Dockerfile

1

2

3

4

5

6

7

8

9

10

11

12

13

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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!

查看容器日志:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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 镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以按照以下步骤来构建Python镜像并安装相应的包: 1. 首先,在你的项目目录下创建一个名为 `Dockerfile` 的文件。 2. 在 `Dockerfile` 中指定基础镜像。例如,使用官方的 Python 3.8 镜像:`FROM python:3.8` 3. 安装你需要的包。可以使用 `RUN` 命令来运行安装命令。例如,安装 Flask 和 numpy 包:`RUN pip install Flask numpy` 4. 将你的项目代码复制到容器中。可以使用 `COPY` 命令来复制文件。例如,复制当前目录下的所有文件到容器的 `/app` 目录下:`COPY . /app` 5. 设置容器的工作目录。可以使用 `WORKDIR` 命令来设置工作目录。例如,设置容器的工作目录为 `/app`:`WORKDIR /app` 6. 暴露容器的端口。可以使用 `EXPOSE` 命令来暴露端口。例如,暴露容器的端口为 `5000`:`EXPOSE 5000` 7. 指定容器启动时要运行的命令。可以使用 `CMD` 命令来指定启动命令。例如,启动 Flask 应用:`CMD ["python", "app.py"]` 下面是一个示例的 `Dockerfile` 文件: ``` FROM python:3.8 RUN pip install Flask numpy COPY . /app WORKDIR /app EXPOSE 5000 CMD ["python", "app.py"] ``` 在项目目录下运行以下命令来构建镜像: ``` docker build -t my-python-app . ``` 这将会构建一个名为 `my-python-app` 的镜像。你可以使用以下命令来运行该镜像: ``` docker run -p 5000:5000 my-python-app ``` 这将会启动容器,并将容器的端口 `5000` 映射到主机的端口 `5000`。你可以通过访问 `http://localhost:5000` 来访问你的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI周红伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值