From 2bed4cdb09dbc6ffc0ced1f1a026f59bc3452e3e Mon Sep 17 00:00:00 2001 From: yeasy Date: Mon, 27 Apr 2026 14:17:57 +0000 Subject: [PATCH] Fix mongosh, DCA price, compose healthcheck and cleanup --- 09_network/9.7_advanced_networking.md | 10 +++++----- 11_compose/11.4_commands.md | 2 +- 11_compose/demo/django/docker-compose.yml | 8 ++++++++ 17_ecosystem/17.6_containerd.md | 2 +- appendix/learning_roadmap.md | 2 +- appendix/repo/mongodb.md | 4 ++-- appendix/repo/nodejs.md | 2 -- 7 files changed, 18 insertions(+), 12 deletions(-) diff --git a/09_network/9.7_advanced_networking.md b/09_network/9.7_advanced_networking.md index baf4dd9..e530498 100644 --- a/09_network/9.7_advanced_networking.md +++ b/09_network/9.7_advanced_networking.md @@ -53,7 +53,7 @@ docker network inspect my-overlay-net docker service create --name web \ --network my-overlay-net \ --replicas 3 \ - nginx # 确保与环境兼容的 Nginx 版本 + nginx # 单机环境下也可以让普通容器加入 attachable overlay 网络 docker run -d --name container1 --network my-overlay-net busybox sleep 1d @@ -111,14 +111,14 @@ docker run -d \ --dns 8.8.8.8 \ --dns 1.1.1.1 \ --dns-search example.com \ - nginx # 确保与环境兼容的 Nginx 版本 + nginx # DNS 选项 docker run -d \ --dns-option ndots:2 \ --dns-option timeout:1 \ --dns-option attempts:3 \ - nginx # 确保与环境兼容的 Nginx 版本 + nginx # 查看容器 DNS 配置 docker exec cat /etc/resolv.conf @@ -171,8 +171,8 @@ networks: docker network create mynet # 运行服务 -docker run -d --name web --network mynet nginx # 确保与环境兼容的 Nginx 版本 -docker run -d --name db --network mynet postgres # 确保与环境兼容的 PostgreSQL 版本 +docker run -d --name web --network mynet nginx +docker run -d --name db --network mynet postgres # 在其他容器中通过服务名访问 docker run -it --network mynet busybox sh diff --git a/11_compose/11.4_commands.md b/11_compose/11.4_commands.md index e55aafc..5f5776f 100644 --- a/11_compose/11.4_commands.md +++ b/11_compose/11.4_commands.md @@ -26,7 +26,7 @@ Docker Compose 提供了丰富的命令来管理项目和容器。本节将详 **配置验证**: -- `docker compose config`:验证 docker-compose.yml 格式是否正确 +- `docker compose config`:验证 compose.yaml (或 docker-compose.yml) 格式是否正确 ### 11.4.1 命令对象与格式 diff --git a/11_compose/demo/django/docker-compose.yml b/11_compose/demo/django/docker-compose.yml index 7219cb6..47bbadf 100644 --- a/11_compose/demo/django/docker-compose.yml +++ b/11_compose/demo/django/docker-compose.yml @@ -5,6 +5,11 @@ services: image: postgres environment: POSTGRES_PASSWORD: 'postgres' + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 5s + timeout: 5s + retries: 5 web: build: . @@ -13,3 +18,6 @@ services: - .:/code ports: - "8000:8000" + depends_on: + db: + condition: service_healthy diff --git a/17_ecosystem/17.6_containerd.md b/17_ecosystem/17.6_containerd.md index ccf41c9..754b626 100644 --- a/17_ecosystem/17.6_containerd.md +++ b/17_ecosystem/17.6_containerd.md @@ -41,7 +41,7 @@ Kubernetes 作为一个容器编排系统,为了屏蔽底层不同容器运行 - 早期版本中,Kubernetes 默认使用 docker 作为运行时,通过一个名为 `dockershim` 的桥接组件对接 Docker,Docker 再对接 containerd。 - 随着 containerd 原生支持了 CRI 插件,Kubernetes 开始直接与 containerd 通信,去掉了 `dockershim` 和 `dockerd` 的中间层。这就是为什么从 Kubernetes 1.24+ 开始”弃用 Docker”引发了广泛关注,实际上 Kubernetes 只是弃用 `dockershim`,底层依然在使用从 Docker 基因中诞生的 containerd。参见 [Kubernetes 官方文档](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)。 -- containerd 2.0+ 移除了已弃用的 CRI v1alpha2 接口,仅保留 CRI v1(Kubernetes 1.26+ 仅支持 CRI v1)。如果集群中仍有依赖 CRI v1alpha2 的组件,升级 containerd 2.x 前需先完成迁移。containerd 2.3+ 是 2.x 系列首个 LTS 版本,支持从 1.7 LTS 直接升级,生产环境推荐使用。详见 [containerd 发布说明](https://github.com/containerd/containerd/releases)。 +- containerd 2.0+ 移除了已弃用的 CRI v1alpha2 接口,仅保留 CRI v1(Kubernetes 1.26+ 仅支持 CRI v1)。containerd 2.3+ 是 2.x 系列首个 LTS 版本,支持从 1.7 LTS 直接升级,生产环境推荐使用。详见 [containerd 发布说明](https://github.com/containerd/containerd/releases)。 ### 17.6.3 为什么直接使用 containerd? diff --git a/appendix/learning_roadmap.md b/appendix/learning_roadmap.md index 3101c88..51e8a1e 100644 --- a/appendix/learning_roadmap.md +++ b/appendix/learning_roadmap.md @@ -434,7 +434,7 @@ Kubernetes 进阶 (Week 24-36) - 题目数:55 道 - 时间限制:90 分钟 - 及格分数:73%(约 41 道题) -- 费用:$165 USD +- 费用:$199 USD - 有效期:3 年 考试内容比例: diff --git a/appendix/repo/mongodb.md b/appendix/repo/mongodb.md index dbc7a1c..2627b1b 100644 --- a/appendix/repo/mongodb.md +++ b/appendix/repo/mongodb.md @@ -25,13 +25,13 @@ $ docker run --name some-mongo -d --network my-mongo-net mongo ```bash $ docker run --name some-app -d --network my-mongo-net application-that-uses-mongo ``` -或者通过 `mongo` +或者通过 `mongosh`(MongoDB 6.0+ 已弃用 `mongo`,请使用 `mongosh`) ```bash $ docker run -it --rm \ --network my-mongo-net \ mongo \ - sh -c 'exec mongo "some-mongo:27017/test"' + sh -c 'exec mongosh "mongodb://some-mongo:27017/test"' ``` ### Dockerfile diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 8f50b25..a99c33b 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -28,8 +28,6 @@ $ docker run -it --rm --name my-running-app my-nodejs-app ```bash $ docker run -it --rm \ --name my-running-script \ - # -v "$ ":/usr/src/myapp \ - --mount type=bind,src="$(pwd)",target=/usr/src/myapp \ -w /usr/src/myapp \ node:20-alpine \