Docker 基础镜像 FROM 官方镜像怎么用

云敏姑娘_5136

云敏姑娘_5136

2026-08-23

466人浏览

原创

应优先选用带明确版本号的官方轻量镜像,如python:3.11-slim或node:20-alpine,避免latest标签;推荐使用-alpine/-slim变体以减小体积,并通过digest(如from python@sha256:...)锁定精确版本确保构建可重现。

docker 基础镜像 from 官方镜像怎么用

直接用官方镜像作为基础镜像,关键不是“能不能用”,而是“怎么选、怎么写、怎么防坑”。FROM 指令是 Dockerfile 的起点,选错基础镜像,后面所有构建都可能白忙一场。

选对官方镜像:别只看名字,要看标签和体积

官方镜像在 Docker Hub 上以 “Official Images” 标识(带 ✅ 图标),比如 nginx、python、node、alpine 等。但同一镜像名下有多种标签,差异很大:

  • 优先选带明确版本号的标签,例如 python:3.11-slim 或 node:20-alpine,避免用 latest —— 它会随上游更新而变,可能引入不兼容变更;
  • 轻量优先选 -slim 或 -alpine:比如 debian:slim 比 ubuntu:22.04 小一半以上,alpine 镜像通常仅 5–10MB,适合生产部署;
  • 注意架构兼容性:如果目标运行环境是 ARM64(如 Apple Silicon 或树莓派),确认镜像支持该平台,可加 --platform linux/arm64 或在 FROM 中显式指定(如 FROM --platform=linux/arm64 python:3.11-alpine)。

写法要规范:FROM 是第一条,且必须有

Dockerfile 中,FROM 必须是第一个非注释指令。常见合法写法包括:

Docker Ctl
Docker Ctl

使用 podman 检查容器、日志和镜像

下载
  • FROM python:3.11-slim —— 最常用,指定镜像名和标签;
  • FROM node:20-alpine AS builder —— 多阶段构建中给阶段命名,后续可用 COPY --from=builder 引用;
  • FROM python@sha256:abc123def456... —— 用摘要(digest)锁定精确镜像,杜绝因标签被覆盖导致的构建漂移;
  • FROM scratch —— 极简场景(如静态编译的 Go 程序),从空镜像开始,体积最小,但无 shell、无包管理器,需自行拷贝二进制文件。

避开常见坑:安全与稳定比方便更重要

很多问题其实源于基础镜像选择不当或写法随意:

  • 别用社区打包的“某人版”镜像(如 someguy/nginx:cool),它们没经过 Docker 官方审核,可能含后门、过期漏洞,或突然下架;
  • 别省略标签还假装自己很懂:写 FROM ubuntu 等价于 FROM ubuntu:latest,等于把版本控制权交给别人;
  • 构建前先本地拉取验证:执行 docker pull python:3.11-slim 看是否能成功,顺便检查镜像大小和 Layers 是否合理;
  • 定期更新基础镜像:不是“一次写完永不改”,建议结合 Dependabot 或手动检查镜像更新日志,尤其关注安全补丁(如 OpenSSL、glibc 升级)。

怎么确认你用的是真·官方镜像?

打开 Docker Hub 页面,认准三个特征:

  • 页面顶部显示 “Official Image” 和绿色 ✅;
  • 镜像详情页的 “Supported tags” 列表完整、更新频繁(如每周都有新 patch 版本);
  • 底部 “Image Variants” 明确说明各标签区别(如 -slim 基于 Debian slim,-alpine 基于 Alpine Linux)。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

645

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

4399

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5277

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

1953

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

219

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

391

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

360

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

265

24

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

365

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习