mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
fix(content): correct verified internal inconsistencies across 7 sections
均为书内自证的矛盾,无需外部来源: - 19.3: golang:1.26-alpine 标注为 ~1GB,但 21.7 将 ~900MB 归给非 alpine 的 golang:1.26,且 7.17 实测 alpine 版镜像为 295MB——alpine 变体不可能大于其 非 alpine 版本。改为与 21.7 一致的「golang:1.26 基础镜像的 ~900MB」。 - 20_cases_os: 正文称通用镜像 100-300 MB,紧邻的表格却列 Ubuntu ~80 MB (与 4.2 的 ubuntu 24.04 78MB 一致)。正文改为 80-300 MB。 - 4.2: 「查找大于 500MB 的镜像」的 ^[0-9]+GB 不匹配小数,会漏掉 docker 实际 输出的全部 x.yGB(本书自己的示例即为 2.5GB)。补充可选小数部分。 - 6.2: docker image ls 示例输出把 tag 混入 REPOSITORY 列 (127.0.0.1:5000/ubuntu:latest + TAG latest),与同块 ubuntu/latest 行及 本节自述的 tag 格式不符。 - 5.3: 生命周期状态图缺 Stopped --> Running,而 5.3.6 正是讲 docker start 启动已停止的容器;原图中停止的容器只能被删除。 - 9.5: 端口映射图节点标签 "容器 (Class B: 80)" 语义错乱(Class B 是 IP 地址 分类,与端口无关),改为「容器 (端口: 80)」。 - appendix/faq/errors.md: 标题「常见错误速查表」与 SUMMARY.md 及 faq/README 两处链接文字「常见错误处理」不一致(全书 196 篇中唯一一处标题漂移)。
This commit is contained in:
@@ -252,7 +252,7 @@ $ docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h
|
||||
|
||||
## 查找大于 500MB 的镜像
|
||||
|
||||
$ docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | grep -E "^[0-9]+GB|^[5-9][0-9]{2}MB"
|
||||
$ docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | grep -E "^[0-9]+(\.[0-9]+)?GB|^[5-9][0-9]{2}MB"
|
||||
|
||||
## 导出镜像列表
|
||||
|
||||
|
||||
@@ -153,6 +153,7 @@ stateDiagram-v2
|
||||
[*] --> Created : docker create
|
||||
Created --> Running : docker start
|
||||
Running --> Stopped : docker stop
|
||||
Stopped --> Running : docker start
|
||||
Running --> Paused : docker pause
|
||||
Paused --> Running : docker unpause
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ $ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
|
||||
$ docker image ls
|
||||
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
||||
ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
127.0.0.1:5000/ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
```
|
||||
使用 `docker push` 上传标记的镜像。
|
||||
|
||||
@@ -87,7 +87,7 @@ ebc34468f71d: Download complete
|
||||
|
||||
$ docker image ls
|
||||
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
||||
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
127.0.0.1:5000/ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
```
|
||||
|
||||
### 6.2.3 配置非 https 仓库地址
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
flowchart TD
|
||||
User["外部用户 (Browser)"] --> Host["宿主机 (localhost:8080)"]
|
||||
Host --> Proxy["Docker Proxy<br/>端口映射 (8080 -> 80)"]
|
||||
Proxy --> Container["容器 (Class B: 80)"]
|
||||
Proxy --> Container["容器 (端口: 80)"]
|
||||
```
|
||||
---
|
||||
|
||||
|
||||
@@ -457,7 +457,7 @@ COPY --from=builder /build/app /app
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/app"]
|
||||
|
||||
# 最终镜像大小通常 < 15MB(相比 golang:1.26-alpine 的 ~1GB)
|
||||
# 最终镜像大小通常 < 15MB(相比 golang:1.26 基础镜像的 ~900MB)
|
||||
```
|
||||
**Node.js 应用的多阶段构建:**
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
在容器化应用开发中,选择合适的基础操作系统镜像直接影响容器的大小、启动速度、安全性和运行性能。不同的镜像提供了不同的功能集和资源占用:
|
||||
|
||||
- **轻量级镜像** (Busybox、Alpine) - 镜像大小仅几 MB,启动快速,适合微服务、IoT 设备和对资源敏感的环境。Busybox 是最小的选择,集成了常见的 Unix 工具;Alpine 则提供了完整的包管理器,方便安装额外工具。
|
||||
- **通用镜像** (Debian、Ubuntu) - 提供完整的 Linux 功能和丰富的软件生态,镜像大小通常在 100-300 MB 之间。适合需要灵活安装各种依赖和工具的应用场景。
|
||||
- **通用镜像** (Debian、Ubuntu) - 提供完整的 Linux 功能和丰富的软件生态,镜像大小通常在 80-300 MB 之间。适合需要灵活安装各种依赖和工具的应用场景。
|
||||
- **企业级镜像** (CentOS、Fedora) - 基于 Red Hat 生态,广泛应用于企业环境和复杂系统应用。提供了 yum 包管理器和强大的系统管理工具。
|
||||
|
||||
选择镜像的关键原则是 “小而够用”——选择满足应用需求的最小镜像。这样可以减少安全漏洞表面积、加快镜像拉取和推送速度、降低存储成本,同时也使容器更便于分发和部署。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 常见错误速查表
|
||||
## 常见错误处理
|
||||
|
||||
| 错误信息 / 现象 | 可能原因 | 解决方案 |
|
||||
| :--- | :--- | :--- |
|
||||
|
||||
Reference in New Issue
Block a user