外观
Dockerfile
Dockerfile 是一种文本文件,包含了一组指令,用于自动化构建 Docker 镜像的过程。它定义了从基础镜像开始,如何安装应用程序、配置环境、复制文件、暴露端口以及设置容器的启动命令等。常见的指令有 FROM(指定基础镜像)、RUN(执行命令)、COPY(复制文件到容器)、EXPOSE(暴露端口)等。通过 Dockerfile,用户可以通过一个简单的命令 docker build 创建出一个定制化的 Docker 镜像,实现环境的一致性、自动化部署以及便于分发。
下表,列举了常用的 Dockerfile 指令。
| 指令 | 作用 |
|---|---|
FORM | 指定镜像基础环境 |
RUN | 运行自定义命令 |
CMD | 容器启动命令或参数 |
LABEL | 自定义标签 |
EXPOSE | 指定暴露端口 |
ENV | 环境变量 |
ADD | 添加文件到镜像 |
COPY | 复制文件到镜像 |
ENTRYPOINT | 容器固定启动命令 |
VOLUME | 数据卷 |
USER | 指定用户和用户组 |
WORKDIR | 指定默认工作目录 |
ARG | 指定工作目录 |
这里使用 Python 的 Flask 框架,使用一个简单的代码做一个可以访问的页面。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
# 将 host 设置为 0.0.0.0,让应用可以被外部访问
app.run(host='0.0.0.0', port=9000)# 指定镜像
FROM python:3.13.1
# 如果下载缓慢或失败 可以使用国内镜像
# FROM hub.littlediary.cn/library/python:3.13.1
# 指定标签,内容自定义
LABEL author=qi1
# 安装依赖
RUN ["pip", "install", "flask"]
# 将宿主机的文件复制到容器中
COPY main.py /main.py
# 暴露端口
EXPOSE 9000
# 程序入口,可以理解为启动应用的命令
ENTRYPOINT python -m main
# 也可以写成 ENTRYPOINT ["python", "-m", "main"]将上述命令复制到和 main.py 同级目录的 Dockerfile 中,然后运行 docker build -f Dockerfile -t myapp:v1.0 .。
其中,-t 为 --tag,指定镜像名称,. 为构建上下文,即当前目录。

查看容器列表:
docker images
docker run -d -p 9000:9000 --name myapp myapp:v1.0