mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-24 02:35:27 +00:00
Polish Docker workflow formatting
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
`dockerd` 参数会随版本变化。建议优先在目标机器上执行 `dockerd --help`,并以 `daemon.json` 为主进行持久化配置。
|
||||
|
||||
### 常用选项 (Docker Engine 29.x)
|
||||
### 常用选项:Docker Engine 29.x
|
||||
|
||||
* `--config-file="/etc/docker/daemon.json"`:指定 daemon 配置文件路径;
|
||||
* `--data-root=""`:Docker 数据目录 (默认 `/var/lib/docker`);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* **全书统一标准**:所有的编排命令必须书写为 `docker compose` (带空格的 V2 CLI 插件版)。
|
||||
* 不得在新的文档和案例中提及或使用旧版格式,除非是为了特意说明 V1 到 V2 的迁移。
|
||||
|
||||
## 4. 可复现性目标 (以可重建为目标)
|
||||
## 4. 可复现性目标:以可重建为目标
|
||||
|
||||
本书中的所有实战和案例 (尤其 OS 与 DevOps 章节) 应尽量给出“最小可复现实验环境”。
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox
|
||||
|
||||
答:一般并不推荐在同一个容器内运行多个应用进程。如果有类似需求,可以通过一些额外的进程管理机制,比如 `supervisord` 来管理所运行的进程。可以参考 https://docs.docker.com/engine/containers/multi-service_container/ 。
|
||||
|
||||
### 如何控制容器占用系统资源 (CPU、内存) 的份额?
|
||||
### 如何控制容器占用 CPU、内存等系统资源的份额?
|
||||
|
||||
答:在使用 `docker create` 命令创建容器或使用 `docker run` 创建并启动容器的时候,可以使用 -c|--cpu-shares\[=0] 参数来调整容器使用 CPU 的权重;使用 -m|--memory\[=MEMORY] 参数来调整容器使用内存的大小。
|
||||
|
||||
@@ -166,7 +166,7 @@ lrwxrwxrwx. 1 root root 15 11月 17 13:43 docker -> /storage/docker
|
||||
|
||||
## 其它
|
||||
|
||||
### Docker 能在非 Linux 平台 (比如 Windows 或 macOS) 上运行么?
|
||||
### Docker 能在非 Linux 平台上运行么?比如 Windows 或 macOS
|
||||
|
||||
答:完全可以。安装方法请查看[安装 Docker](../../03_install/README.md) 一节
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Docker 学习可分为四个递进阶段,每个阶段都有明确的学习目
|
||||
- 了解镜像和仓库的基本操作
|
||||
|
||||
**核心内容:**
|
||||
```
|
||||
```text
|
||||
Docker 简介
|
||||
├── 为什么需要 Docker
|
||||
├── 容器 vs 虚拟机 vs 云计算
|
||||
@@ -64,7 +64,7 @@ Docker 安装配置
|
||||
- 熟悉 Docker Compose 编排
|
||||
|
||||
**核心内容:**
|
||||
```
|
||||
```text
|
||||
Dockerfile 指令详解
|
||||
├── FROM / RUN / COPY / ADD
|
||||
├── WORKDIR / ENV / ARG
|
||||
@@ -122,7 +122,7 @@ Docker Compose
|
||||
- 总计:4-6 周
|
||||
|
||||
**项目实战:**
|
||||
```
|
||||
```text
|
||||
项目 1: Python Web 应用(Flask/Django)
|
||||
- 编写多阶段 Dockerfile
|
||||
- 使用 Compose 配置数据库
|
||||
@@ -148,7 +148,7 @@ Docker Compose
|
||||
- 熟悉 CI/CD 集成
|
||||
|
||||
**核心内容:**
|
||||
```
|
||||
```text
|
||||
容器安全
|
||||
├── 镜像安全
|
||||
│ ├── 漏洞扫描(Trivy/Grype/Snyk)
|
||||
@@ -231,7 +231,7 @@ CI/CD 集成
|
||||
- 总计:6-12 周
|
||||
|
||||
**项目实战:**
|
||||
```
|
||||
```text
|
||||
项目 1: 安全镜像构建流程
|
||||
- 集成 Trivy 扫描
|
||||
- 镜像签名和验证
|
||||
@@ -263,7 +263,7 @@ CI/CD 集成
|
||||
- 贡献开源社区
|
||||
|
||||
**核心内容:**
|
||||
```
|
||||
```text
|
||||
Kubernetes 高级特性
|
||||
├── 集群管理
|
||||
│ ├── 节点管理和驱逐
|
||||
@@ -329,7 +329,7 @@ DevOps 工程化
|
||||
|
||||
### 知识点依赖关系
|
||||
|
||||
```
|
||||
```text
|
||||
基础概念 (Week 0-2)
|
||||
├── 容器 vs 虚拟机
|
||||
├── Docker 三大概念
|
||||
@@ -430,7 +430,7 @@ Kubernetes 进阶 (Week 24-36)
|
||||
- 有效期:3 年
|
||||
|
||||
考试内容比例:
|
||||
```
|
||||
```text
|
||||
镜像和仓库(20%)
|
||||
- 镜像构建和管理
|
||||
- 镜像层和缓存
|
||||
@@ -513,7 +513,7 @@ docker stats / events / inspect
|
||||
**Q1: Docker 容器和虚拟机有什么区别?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
虚拟机:
|
||||
- 完整的操作系统环境(GB 级)
|
||||
- 启动时间:分钟级
|
||||
@@ -532,7 +532,7 @@ A(要点):
|
||||
**Q2: 什么是 Docker 镜像?它如何存储的?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
镜像本质:
|
||||
- 只读的文件系统快照
|
||||
- 分层存储结构
|
||||
@@ -552,7 +552,7 @@ A(要点):
|
||||
**Q3: 容器如何实现隔离?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
技术手段:
|
||||
1. Namespace(资源隔离):
|
||||
- PID Namespace:进程隔离
|
||||
@@ -579,7 +579,7 @@ A(要点):
|
||||
**Q4: 如何优化 Docker 镜像大小?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
1. 选择合适的基础镜像:
|
||||
scratch < alpine:3.17 < python:3.11-slim < python:3.11
|
||||
|
||||
@@ -610,7 +610,7 @@ A(要点):
|
||||
**Q5: CMD 和 ENTRYPOINT 有什么区别?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
CMD:
|
||||
- 定义容器默认命令
|
||||
- 容器运行时可被覆盖:docker run image_name custom_cmd
|
||||
@@ -634,7 +634,7 @@ CMD ["--port", "8000"]
|
||||
**Q6: Docker 网络驱动的区别?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
Bridge(默认):
|
||||
- 虚拟网桥,容器间通过网桥通信
|
||||
- 支持端口映射
|
||||
@@ -662,7 +662,7 @@ None:
|
||||
**Q7: Volume 和 Bind Mount 有什么区别?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
Volume:
|
||||
- Docker 管理,存储位置:/var/lib/docker/volumes/
|
||||
- 跨平台兼容,隔离性好
|
||||
@@ -686,7 +686,7 @@ tmpfs:
|
||||
**Q8: 如何提高 Docker 安全性?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
镜像安全:
|
||||
- 使用官方镜像或可信镜像源
|
||||
- 定期扫描漏洞(Trivy/Grype)
|
||||
@@ -714,7 +714,7 @@ A(要点):
|
||||
**Q9: 容器被 OOM 杀死,如何诊断和解决?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
诊断:
|
||||
1. 检查容器是否被 OOM 杀死:
|
||||
docker inspect <container> | grep OOMKilled
|
||||
@@ -746,7 +746,7 @@ A(要点):
|
||||
**Q10: 如何在 CI/CD 中集成 Docker?**
|
||||
|
||||
A(要点):
|
||||
```
|
||||
```text
|
||||
构建阶段:
|
||||
- 触发器:Push / PR 事件
|
||||
- 构建镜像:docker build
|
||||
|
||||
Reference in New Issue
Block a user