Files
yeasy 90536e9b85 fix(一致性): 两处相互冲突的建议,其一会让读者悄悄失去本书推荐的默认后端
- 18.1 完整演示了如何开启 `userns-remap`,全程没有任何代价提示。但官方文档
  明写「The containerd image store is not available when using user namespace
  remapping」,而本书基线是 Docker Engine v29.x——该版本新装默认就是
  containerd image store,12.4 节还把它标为「强烈推荐(现代默认)」。照 18.1
  做完,读者会在毫不知情的情况下退回旧存储后端,失去 OCI image index、多架构
  镜像与构建溯源。补上这条互斥关系并交叉引用 12.4。
- 5 章说「生产环境建议指定确切版本号(如 nginx:1.28.0)而非仅大版本号」,
  7 章说「使用主或次版本号而非完整版本号(patch)」并把 patch 版本列入
  「避免」。两条都以全书建议的口吻写成,方向正好相反。它们其实面向不同环节:
  Dockerfile 的**基础镜像**用主/次版本号,才能在重新构建时自动带上安全补丁;
  **部署**一个服务镜像则应钉死确切版本,让部署可复现、升级是显式动作。
  两处各补一句限定范围并互相指引,而不是删掉其中一条。
2026-09-04 14:57:24 -07:00
..

第五章 操作容器

容器是 Docker 又一核心概念。

简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。

本章将具体介绍如何来管理一个容器,包括创建、启动和停止等。

版本号说明

本章示例涉及多个 Docker 镜像,遵循以下版本号最佳实践:

  • 官方镜像(如 ubuntu、nginx、mysql):使用具体大版本号(如 ubuntu:24.04、mysql:8.4)而非 latest,确保示例的可重复性
  • 镜像标签约定:
    • latest 或 v1.0.0 等:带标签的自定义镜像,示例中指定具体版本
    • 24.04、8.4:官方镜像的稳定版本分支
    • 生产环境建议:运行/部署服务镜像时指定确切版本号(如 nginx:1.28.0、mysql:8.4.4)而非仅大版本号,让每次部署可复现、升级是显式动作。 (注意这与 第 7 章 对 Dockerfile 基础镜像 的建议方向相反:基础镜像用主/次版本号,以便重新构建时自动带上补丁。两者面向的是不同环节。)