Goer-系列1-Dockerfile构建自定义镜像

Dockerfile 是构建自定义镜像的「脚本文件」,通过一系列指令定义镜像的构建步骤,替代手动在容器内操作(如安装依赖、配置环境),实现镜像的可重复构建、版本化管理。掌握 Dockerfile 是 Docker 进阶的核心技能,以下从「核心指令」「实战案例」「构建优化」三个维度展开讲解。

一、Dockerfile 核心指令(必学)

Dockerfile 指令按功能可分为「基础配置」「文件操作」「环境设置」「启动命令」四类,每个指令都是大写字母(约定俗成),按执行顺序构建镜像(每一行指令通常对应镜像的一层)。

1. 基础配置指令(定义镜像基础)
  • FROM:指定基础镜像(必须是 Dockerfile 的第一条指令,除非用 ARG 定义参数)。
    作用:所有自定义镜像都需基于一个已有的基础镜像(如操作系统、语言环境),避免从零构建。
    示例:
    # 基于 Ubuntu 22.04 操作系统
    FROM ubuntu:22.04
    
    # 基于 Python 3.11 环境(已包含 Python 解释器)
    FROM python:3.11-slim  # slim 是精简版,体积更小
    
2. 文件操作指令(复制/添加文件)
  • COPY:将宿主机的文件/目录复制到镜像中(推荐使用,功能简单明确)。
    语法:COPY [--chown=用户:组] 宿主机路径 镜像内路径
    示例:

    # 复制当前目录的 app.py 到镜像的 /app 目录
    COPY app.py /app/
    
    # 复制当前目录的所有文件(除 .dockerignore 排除的)到镜像的 /app 目录
    COPY . /app/
    
  • ADD:功能类似 COPY,但支持额外特性(不推荐轻易使用):

    • 自动解压压缩包(如 .tar .zip,复制到镜像后会自动解压);
    • 支持 URL 路径(从网络下载文件到镜像,但不建议,推荐用 RUN wget/curl 更灵活)。
      示例:
    # 复制并自动解压 local.tar.gz 到镜像的 /app 目录(等价于 COPY + 解压)
    ADD local.tar.gz /app/
    
3. 环境配置指令(执行命令/设置环境)
  • RUN:在镜像构建阶段执行命令(如安装依赖、配置环境),执行结果会被打包到镜像中。
    语法:

    • shell 格式:RUN 命令(默认在 /bin/sh -c 中执行,支持管道 |、变量等);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bing.shao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值