自学内容网 自学内容网

Dockerfile的详解与案例

《Dockerfile 详解与案例》

一、Dockerfile 简介

Dockerfile 是一个用来构建 Docker 镜像的文本文件,它包含了一系列指令,用于描述如何创建一个 Docker 镜像。通过 Dockerfile,你可以定义镜像的基础环境、安装软件包、设置环境变量等操作,从而实现快速、可重复地构建容器镜像。

二、Dockerfile 基本指令

1. FROM

指定基础镜像,后续的指令将基于这个镜像进行构建。例如:

FROM ubuntu:latest

2. RUN

用于在镜像中执行命令。可以是单个命令,也可以是多个命令的组合,用&&连接。例如:

RUN apt-get update && apt-get install -y python3

3. COPY

将本地文件或目录复制到镜像中。例如:

COPY app.py /app/

4. ADD

功能类似于 COPY,但 ADD 还可以自动解压缩 tar 文件等。例如:

ADD myfile.tar.gz /app/

5. WORKDIR

设置工作目录。例如:

WORKDIR /app

6. ENV

设置环境变量。例如:

ENV MY_VAR=value

7. EXPOSE

声明容器运行时监听的端口。例如:

EXPOSE 8080

8. CMD

指定容器启动时要执行的命令。例如:

CMD ["python3", "app.py"]

三、案例:构建一个简单的 Python Web 应用镜像

假设我们有一个简单的 Python Flask 应用,文件结构如下:

.
├── app.py
└── requirements.txt

其中app.py的内容如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Docker!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

requirements.txt内容如下:

flask

下面是构建这个应用的 Dockerfile:

FROM python:3.11-slim-buster

WORKDIR /app

COPY requirements.txt.

RUN pip install -r requirements.txt

COPY app.py.

EXPOSE 8080

CMD ["python3", "app.py"]

构建镜像的命令如下:

docker build -t my-python-app.

运行容器的命令如下:

docker run -p 8080:8080 my-python-app

现在,可以在浏览器中访问http://localhost:8080,可以看到“Hello, Docker!”的输出。


原文地址:https://blog.csdn.net/chu396815830/article/details/142421328

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!