文章目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a4cc8aa848874b13ba1a71d18b4fc22b.jpeg)
Dockerfile 简介与 镜像构建指南
Dockerfile 概述
Dockerfile 是一个文本文件,它包含了构建 Docker 镜像所需的一系列指令。这些指令定义了容器的运行环境,包括软件包、依赖关系、配置文件等。Dockerfile 使得开发者可以自动化地创建一致且可移植的容器镜像。
常用 Dockerfile 指令
- FROM:指定基础镜像。
- RUN:执行命令,如安装软件。
- CMD:定义容器启动时执行的默认命令。
- EXPOSE:声明容器监听的端口。
- ENV:设置环境变量。
- ADD 和 COPY:复制文件或目录到容器。
- ENTRYPOINT:配置容器启动命令。
- VOLUME:创建挂载点。
- WORKDIR:设置工作目录。
- USER:设置运行容器的用户。
- ARG:定义构建时变量。
- ONBUILD:设置触发器,用于后续镜像构建。
- STOPSIGNAL:设置停止容器的信号。
- LABEL:添加元数据。
- HEALTHCHECK:设置健康检查命令。
Flask 网站 Dockerfile 构建步骤
构建一个 Flask 网站的基本 Dockerfile 包括以下步骤:
- 选择基础镜像:选择官方 Python 镜像。
- 设置工作目录:设置容器内的工作目录。
- 复制项目文件:将 Flask 应用文件复制到容器。
- 安装依赖:安装 Flask 应用的 Python 依赖。
- 暴露端口:Flask 默认端口为 5000。
- 定义启动命令:定义容器启动时运行 Flask 应用的命令。
示例 Dockerfile
# 使用官方 Python 3.8 镜像作为基础镜像
FROM python:3.8-slim
# 设置容器内的工作目录为 /app
WORKDIR /app
# 将当前目录下的所有文件复制到容器的工作目录
COPY . /app
# 安装 Flask 应用所需的依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露 Flask 应用运行的端口 5000
EXPOSE 5000
# 定义容器启动时执行的命令来运行 Flask 应用
CMD ["python", "./app.py"]
Flask 应用结构
flask-app/
│
├── app.py # Flask 应用的入口文件
├── requirements.txt # 应用所需的依赖列表
└── Dockerfile # Dockerfile 文件
app.py 示例
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
requirements.txt 示例
Flask==1.1.2
构建与运行
在包含 Dockerfile 的目录下运行以下命令来构建镜像:
docker build -t my-flask-app .
构建完成后,使用以下命令运行容器:
docker run -p 5000:5000 my-flask-app
现在,你可以在浏览器中访问 http://localhost:5000
来查看你的 Flask 网站。
通过这个指南,你可以了解 Dockerfile 的基本概念和如何使用它来构建一个简单的 Flask 网站。这不仅有助于确保你的应用在不同环境中的一致性,还提高了部署的效率和便捷性。