mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 16:37:34 +00:00
Fix mongosh, DCA price, compose healthcheck and cleanup
This commit is contained in:
@@ -53,7 +53,7 @@ docker network inspect my-overlay-net
|
|||||||
docker service create --name web \
|
docker service create --name web \
|
||||||
--network my-overlay-net \
|
--network my-overlay-net \
|
||||||
--replicas 3 \
|
--replicas 3 \
|
||||||
nginx # 确保与环境兼容的 Nginx 版本
|
nginx
|
||||||
|
|
||||||
# 单机环境下也可以让普通容器加入 attachable overlay 网络
|
# 单机环境下也可以让普通容器加入 attachable overlay 网络
|
||||||
docker run -d --name container1 --network my-overlay-net busybox sleep 1d
|
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 8.8.8.8 \
|
||||||
--dns 1.1.1.1 \
|
--dns 1.1.1.1 \
|
||||||
--dns-search example.com \
|
--dns-search example.com \
|
||||||
nginx # 确保与环境兼容的 Nginx 版本
|
nginx
|
||||||
|
|
||||||
# DNS 选项
|
# DNS 选项
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--dns-option ndots:2 \
|
--dns-option ndots:2 \
|
||||||
--dns-option timeout:1 \
|
--dns-option timeout:1 \
|
||||||
--dns-option attempts:3 \
|
--dns-option attempts:3 \
|
||||||
nginx # 确保与环境兼容的 Nginx 版本
|
nginx
|
||||||
|
|
||||||
# 查看容器 DNS 配置
|
# 查看容器 DNS 配置
|
||||||
docker exec <container_id> cat /etc/resolv.conf
|
docker exec <container_id> cat /etc/resolv.conf
|
||||||
@@ -171,8 +171,8 @@ networks:
|
|||||||
docker network create mynet
|
docker network create mynet
|
||||||
|
|
||||||
# 运行服务
|
# 运行服务
|
||||||
docker run -d --name web --network mynet nginx # 确保与环境兼容的 Nginx 版本
|
docker run -d --name web --network mynet nginx
|
||||||
docker run -d --name db --network mynet postgres # 确保与环境兼容的 PostgreSQL 版本
|
docker run -d --name db --network mynet postgres
|
||||||
|
|
||||||
# 在其他容器中通过服务名访问
|
# 在其他容器中通过服务名访问
|
||||||
docker run -it --network mynet busybox sh
|
docker run -it --network mynet busybox sh
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ Docker Compose 提供了丰富的命令来管理项目和容器。本节将详
|
|||||||
|
|
||||||
**配置验证**:
|
**配置验证**:
|
||||||
|
|
||||||
- `docker compose config`:验证 docker-compose.yml 格式是否正确
|
- `docker compose config`:验证 compose.yaml (或 docker-compose.yml) 格式是否正确
|
||||||
|
|
||||||
### 11.4.1 命令对象与格式
|
### 11.4.1 命令对象与格式
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,11 @@ services:
|
|||||||
image: postgres
|
image: postgres
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: 'postgres'
|
POSTGRES_PASSWORD: 'postgres'
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
@@ -13,3 +18,6 @@ services:
|
|||||||
- .:/code
|
- .:/code
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Kubernetes 作为一个容器编排系统,为了屏蔽底层不同容器运行
|
|||||||
|
|
||||||
- 早期版本中,Kubernetes 默认使用 docker 作为运行时,通过一个名为 `dockershim` 的桥接组件对接 Docker,Docker 再对接 containerd。
|
- 早期版本中,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 原生支持了 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?
|
### 17.6.3 为什么直接使用 containerd?
|
||||||
|
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ Kubernetes 进阶 (Week 24-36)
|
|||||||
- 题目数:55 道
|
- 题目数:55 道
|
||||||
- 时间限制:90 分钟
|
- 时间限制:90 分钟
|
||||||
- 及格分数:73%(约 41 道题)
|
- 及格分数:73%(约 41 道题)
|
||||||
- 费用:$165 USD
|
- 费用:$199 USD
|
||||||
- 有效期:3 年
|
- 有效期:3 年
|
||||||
|
|
||||||
考试内容比例:
|
考试内容比例:
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ $ docker run --name some-mongo -d --network my-mongo-net mongo
|
|||||||
```bash
|
```bash
|
||||||
$ docker run --name some-app -d --network my-mongo-net application-that-uses-mongo
|
$ docker run --name some-app -d --network my-mongo-net application-that-uses-mongo
|
||||||
```
|
```
|
||||||
或者通过 `mongo`
|
或者通过 `mongosh`(MongoDB 6.0+ 已弃用 `mongo`,请使用 `mongosh`)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -it --rm \
|
$ docker run -it --rm \
|
||||||
--network my-mongo-net \
|
--network my-mongo-net \
|
||||||
mongo \
|
mongo \
|
||||||
sh -c 'exec mongo "some-mongo:27017/test"'
|
sh -c 'exec mongosh "mongodb://some-mongo:27017/test"'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dockerfile
|
### Dockerfile
|
||||||
|
|||||||
@@ -28,8 +28,6 @@ $ docker run -it --rm --name my-running-app my-nodejs-app
|
|||||||
```bash
|
```bash
|
||||||
$ docker run -it --rm \
|
$ docker run -it --rm \
|
||||||
--name my-running-script \
|
--name my-running-script \
|
||||||
# -v "$ ":/usr/src/myapp \
|
|
||||||
|
|
||||||
--mount type=bind,src="$(pwd)",target=/usr/src/myapp \
|
--mount type=bind,src="$(pwd)",target=/usr/src/myapp \
|
||||||
-w /usr/src/myapp \
|
-w /usr/src/myapp \
|
||||||
node:20-alpine \
|
node:20-alpine \
|
||||||
|
|||||||
Reference in New Issue
Block a user