本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Dockerfile是一种用于自动化构建Docker镜像的文本文件,通过一系列预定义指令(Instruction)描述镜像的构建过程,包括基础镜像选择、依赖安装、文件复制、环境配置及启动命令等。它将镜像构建逻辑代码化,确保构建过程可重复、可追溯,是Docker生态中镜像开发与分发的基础组件。
FROM、RUN、COPY等)将镜像构建步骤转化为可执行代码,消除手动构建的随机性。ARG、ENV等指令注入动态参数,适应不同构建环境需求。FROM指定基础镜像)、操作指令(RUN执行命令、COPY复制文件)、配置指令(ENV设置环境变量、EXPOSE声明端口)及启动指令(CMD、ENTRYPOINT定义容器启动行为)。Dockerfile由一行行指令组成,指令不区分大小写,但惯例使用大写以区分参数。注释以#开头。基本结构示例:
# 基础镜像 FROM [镜像名称]:[标签] # 设置工作目录 WORKDIR /app # 复制文件 COPY . . # 安装依赖 RUN apt-get update && apt-get install -y [依赖包] # 设置环境变量 ENV APP_PORT=8080 # 暴露端口 EXPOSE 8080 # 启动命令 CMD ["python", "app.py"]
| 指令 | 作用 | 示例 |
|---|---|---|
FROM | 指定基础镜像(必须为第一条非注释指令) | FROM python:3.9-slim |
WORKDIR | 设置后续指令的工作目录 | WORKDIR /app |
COPY | 复制本地文件/目录到镜像中 | COPY requirements.txt . |
ADD | 复制文件(支持URL和压缩包自动解压) | ADD [***] /tmp |
RUN | 执行命令并提交结果为新层 | RUN pip install -r requirements.txt |
ENV | 设置环境变量(容器运行时可继承) | ENV LANG=en_US.UTF-8 |
EXPOSE | 声明容器运行时监听的端口(仅文档作用) | EXPOSE 80/tcp 443/udp |
CMD | 容器启动命令(可被docker run参数覆盖) | CMD ["nginx", "-g", "daemon off;"] |
ENTRYPOINT | 容器入口点(不可被轻易覆盖,常与CMD配合) | ENTRYPOINT ["java", "-jar"] |
ARG | 构建时变量(仅在构建阶段有效) | ARG VERSION=1.0 && RUN echo $VERSION |
在Dockerfile所在目录执行以下命令构建镜像:
docker build -t [镜像名称]:[标签] [Dockerfile所在目录]
-t:指定镜像名称和标签(格式为name:tag,如myapp:v1.0)webapp:latest镜像docker build -t webapp:latest .
RUN指令减少层数(如RUN apt-get update && apt-get install -y pkg && rm -rf /var/lib/apt/lists/*)FROM指令分离构建环境与运行环境,减小最终镜像体积:
# 构建阶段 FROM maven:3.8 AS builder WORKDIR /app COPY pom.xml . RUN mvn dependency:go-offline COPY src ./src RUN mvn package -DskipTests # 运行阶段 FROM openjdk:11-jre-slim COPY --from=builder /app/target/*.jar app.jar CMD ["java", "-jar", "app.jar"]
.dockerignore文件:排除不需要复制到镜像的文件(如.git、node_modules),减少上下文体积。以一个简单Python应用为例:
创建Dockerfile:
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . EXPOSE 5000 CMD ["python", "app.py"]
构建镜像:
docker build -t python-app:v1 .
运行容器:
docker run -d -p 5000:5000 --name my-python-app python-app:v1
docker run -e或Docker Secrets注入。nginx、python),确保安全性和稳定性。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429