怎样指定dockerfile中From后的基础镜像从本地获取

[复制链接]
发表于 2026-10-4 11:55:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Dockerfile 里 FROM 指定基础镜像时,默认是去远端仓库(比如 Docker Hub)拉的。想把本地已经存在的镜像当作基础镜像,既省一次下载又能在内网离线环境里用,办法是用 ARG 指令定义一个参数、让 FROM 引用它,构建时再用 --build-arg 传值。

为什么要让 FROM 指向本地镜像

离线构建、内网环境、或者想锁定公司内部的基础镜像时,构建机如果拉不到 Docker Hub,整个 build 直接就断了。把基础镜像名参数化之后,用哪个镜像由构建命令决定,Docker 会优先使用本地已有的同名镜像。

第一步:确认本地已经有这个镜像

docker images

先把要用的基础镜像在本地备好,带上明确的标签。

第二步:Dockerfile 里用 ARG 承接基础镜像名

# 定义一个名叫 BASE_IMAGE 的参数
ARG BASE_IMAGE

# FROM 里引用这个参数
FROM $BASE_IMAGE

第三步:构建时把参数传进去

docker build --build-arg BASE_IMAGE=my-base-image:latest -t my-app .

这里 my-base-image:latest 是本地已经存在的镜像名和标签,my-app 是这次要产出的新镜像名。这样 Docker 就会拿本地的 my-base-image:latest 当基础,不再去远端拉。

实际用起来要注意三点

  • 标签写全:镜像名和 tag 都要对上,图省事写 latest 容易构建到意料之外的版本
  • 参数名别写死:生产脚本里把 BASE_IMAGE 抽成变量,同一个 Dockerfile 就能复用到不同基础镜像上
  • 构建完复核:再用 docker images 看一眼新镜像的大小和来源,确认基础镜像没被替换

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表