dockerfile解析

bash 复制代码
FROM python:3.5.6
RUN mkdir /code_demo
ADD . /code_demo/
WORKDIR /code_demo
RUN pip3 install -r requirement -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --no-cache-dir

逐行解析

1、

dockerfile 复制代码
FROM python:3.5.6

基础镜像

意思是:

  • 从官方的 Python 3.5.6 环境开始构建

  • 这个镜像里已经有:

    • Python 3.5.6
    • pip
    • Linux 系统环境

📌 相当于:你拿了一台"已经装好 Python3.5.6 的虚拟机"


2、

dockerfile 复制代码
RUN mkdir /code

👉 创建目录

意思是:

  • 在容器里创建一个 /code 文件夹
  • 用来放你的项目代码

3、

dockerfile 复制代码
ADD . /code/

👉 复制文件

意思是:

  • 把你当前目录(Dockerfile 所在目录)的所有文件
  • 复制到容器的 /code/ 目录

📌 相当于:

bash 复制代码
cp -r 当前目录/* /code/

⚠️ 注意:

  • . 是宿主机当前目录
  • /code/ 是容器里的目录

4、

dockerfile 复制代码
WORKDIR /code

👉 设置工作目录

意思是:

  • 后续所有命令都在 /code 目录执行

📌 相当于:

bash 复制代码
cd /code

5、

dockerfile 复制代码
RUN pip3 install -r requirement.txt \
    -i http://mirrors.aliyun.com/pypi/simple/ \
    --trusted-host mirrors.aliyun.com \
    --no-cache-dir

👉 安装 Python 依赖

逐个解释:

pip3 install -r requirement
  • requirement 文件安装依赖
-i http://mirrors.aliyun.com/pypi/simple/

👉 使用阿里云镜像源

作用:

  • 加速下载(国内更快)
  • 避免访问官方 PyPI 慢或失败

--trusted-host mirrors.aliyun.com

👉 信任这个源(避免 HTTPS 警告)


--no-cache-dir

👉 不缓存安装包

作用:

  • 减小 Docker 镜像体积
  • 避免留下 pip 缓存

❗1. ADD vs COPY

更推荐用:

dockerfile 复制代码
COPY . /code/

👉 更安全、语义更清晰


❗2. 更规范写法

dockerfile 复制代码
FROM python:3.5.6

WORKDIR /code

COPY . /code/

RUN pip3 install -r requirements.txt \
    -i http://mirrors.aliyun.com/pypi/simple/ \
    --trusted-host mirrors.aliyun.com \
    --no-cache-dir
相关推荐
tryCbest3 小时前
Docker 从零到精通:知识与跨平台使用指南
docker·容器
开始学AI6 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
做前端的娜娜子6 小时前
Docker 常用命令全梳理:从镜像拉取到容器编排
docker·容器·掘金·金石计划
郝开10 小时前
Docker Compose 本地环境搭建:kkFileView
运维·docker·容器
jufeng130713 小时前
【系列:TDengine 工业物联网实战:从零搭起可运行系统 · 第 10 篇】
docker·时序数据库·tdengine·高可用
国际云,接待15 小时前
Docker 容器一直显示 unhealthy:从 Healthcheck 输出到依赖故障的完整排查
运维·docker·容器
伞伞悦读15 小时前
Docker 安装 MinIO 完整教程(新手友好版)
docker·容器·eureka
Lethehong16 小时前
把Blinko放进极空间:Docker 部署自托管笔记,并实现多设备远程访问
笔记·docker·容器
xrlfreedom1 天前
大厂 MCP 面试实录:内部 REST API 封装为可审计 MCP Tools 的落地方案
docker·mcp·提示注入防护
摇滚侠1 天前
《Docker技术入门与实战 第4版》阅读笔记 2 Docker 镜像
笔记·docker·容器