Add blank lines around headers

This commit is contained in:
yeasy
2026-03-24 09:27:04 -07:00
parent 857e3b73f6
commit ae8636e96f
112 changed files with 468 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ RUN apt-get update && apt-get install -y \
mercurial \
subversion
```
#### 构建缓存
在镜像的构建过程中Docker 会遍历 `Dockerfile` 文件中的指令然后按顺序执行在执行每条指令之前Docker 都会在缓存中查找是否已经存在可重用的镜像如果有就使用现存的镜像不再重复创建如果你不想在构建过程中使用缓存你可以在 `docker build` 命令中使用 `--no-cache=true` 选项
@@ -300,6 +301,7 @@ $ docker run postgres postgres --help
```bash
$ docker run --rm -it postgres bash
```
#### VOLUME
`VOLUME` 指令用于暴露任何数据库存储文件配置文件或容器创建的文件和目录强烈建议使用 `VOLUME` 来管理镜像中的可变部分和用户可以改变的部分

View File

@@ -22,6 +22,7 @@ $ sudo kill -SIGHUP $(pidof dockerd)
$ sudo dmesg |grep dockerd
$ sudo dmesg |grep runc
```
### Docker 不响应时处理
可以杀死 dockerd 进程查看其堆栈调用情况
@@ -29,6 +30,7 @@ $ sudo dmesg |grep runc
```bash
$ sudo kill -SIGUSR1 $(pidof dockerd)
```
### 重置 Docker 本地数据
*注意本操作会移除所有的 Docker 本地数据包括镜像和容器等*
@@ -43,6 +45,7 @@ $ docker system prune
```bash
$ sudo rm -rf /var/lib/docker
```
### 常见故障排查
#### 容器启动失败

View File

@@ -52,6 +52,7 @@
```bash
docker inspect --format '{{ .State.Pid }}' <CONTAINER ID or NAME>
```
### 如何获取某个容器的 IP 地址
可以使用
@@ -59,6 +60,7 @@ docker inspect --format '{{ .State.Pid }}' <CONTAINER ID or NAME>
```bash
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID or NAME>
```
### 如何给容器指定一个固定 IP 地址而不是每次重启容器 IP 地址都会变
使用以下命令启动容器可以使容器 IP 固定不变
@@ -68,6 +70,7 @@ $ docker network create -d bridge --subnet 172.25.0.0/16 my-net
$ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox
```
### 如何临时退出一个正在交互的容器的终端而不终止它
`Ctrl-p Ctrl-q`如果按 `Ctrl-c` 往往会让容器内应用进程终止进而会终止容器
@@ -123,6 +126,7 @@ tmpfs 48G 228K 48G 1% /dev/shm
lrwxrwxrwx. 1 root root 15 11月 17 13:43 docker -> /storage/docker
[root@s26 lib]# service docker start
```
### 使用内存和 swap 限制启动容器时候报警告WARNINGYour kernel does not support cgroup swap limitWARNINGYour kernel does not support swap limit capabilitiesLimitation discarded
这是因为系统默认没有开启对内存和 swap 使用的统计功能引入该功能会带来性能的下降要开启该功能可以采取如下操作
@@ -198,6 +202,7 @@ $ sudo ip netns show
```bash
$ sudo ip netns exec 1234 ifconfig eth0 172.17.0.100/16
```
### 如何获取容器绑定到本地那个 veth 接口上
Docker 容器启动后会通过 veth 接口对连接到本地网桥veth 接口命名跟容器命名毫无关系十分难以找到对应关系

View File

@@ -53,6 +53,7 @@ Docker 安装配置
3. 提交修改为新镜像
4. 推送镜像到 Docker Hub需创建账户
```
#### 第二阶段核心开发2-6
**学习目标**
@@ -135,6 +136,7 @@ Docker Compose
- 数据持久化
- 备份恢复策略
```
#### 第三阶段生产优化6-12
**学习目标**
@@ -248,6 +250,7 @@ CI/CD 集成
- 部署有状态应用
- 配置持久化存储
```
#### 第四阶段专家深造12+
**学习目标**
@@ -376,6 +379,7 @@ Kubernetes 进阶 (Week 24-36)
├── 成本优化
└── 开源贡献
```
### 推荐学习资源
#### 官方文档
@@ -475,6 +479,7 @@ docker volume / network / service
docker compose up / down / logs / ps
docker stats / events / inspect
```
#### Kubernetes 认证
**认证路径**
@@ -561,6 +566,7 @@ A要点
4. SELinux / AppArmor强制访问控制
```
#### Dockerfile 面试题
**Q4: 如何优化 Docker 镜像大小**
@@ -614,6 +620,7 @@ CMD ["--port", "8000"]
# 运行 docker run image --debug 会执行:
# python app.py --debug
```
#### 网络和存储面试题
**Q6: Docker 网络驱动的区别**
@@ -664,6 +671,7 @@ tmpfs
- 用于临时文件、敏感数据
- 性能最好,重启丢失
```
#### 安全和生产面试题
**Q8: 如何提高 Docker 安全性**
@@ -758,6 +766,7 @@ A要点
5. 触发 ArgoCD / Flux 自动部署
6. 监控部署状态
```
### 学习进度跟踪模板
```markdown
@@ -805,6 +814,7 @@ A要点
- [ ] 监控和日志系统
- [ ] CI/CD 流程实现
```
### 快速参考速查表
**常用命令速查**

View File

@@ -25,6 +25,7 @@ $ docker run --name rocky -it rockylinux:9 bash
```bash
$ docker run --name centos -it centos:7 bash
```
### Dockerfile
请到 [CentOS 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/centos) 查看。

View File

@@ -13,6 +13,7 @@ MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结
```bash
$ docker run -d -p 9000:9000 -p 9090:9090 minio/minio server /data --console-address ':9090'
```
### 离线部署
许多生产环境是一般是没有公网资源的这就需要从有公网资源的服务器上把镜像导出然后导入到需要运行镜像的内网服务器
@@ -33,6 +34,7 @@ $ docker save -o minio.tar minio/minio:latest
```bash
$ docker load -i minio.tar
```
#### 运行 minio
- `/mnt/data` 改成要替换的数据目录
@@ -49,6 +51,7 @@ $ sudo docker run -d -p 9000:9000 -p 9090:9090 --name minio1 \
--restart=always \
minio/minio server /data --console-address ':9090'
```
#### 访问 web 管理页面
打开 `http://<server-ip>:9090` 访问 Web 控制台

View File

@@ -33,6 +33,7 @@ $ docker run -it --rm \
mongo \
sh -c 'exec mongo "some-mongo:27017/test"'
```
### Dockerfile
请到 [Mongo 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/mongo) 查看。

View File

@@ -39,6 +39,7 @@ $ docker run -d \
-v /path/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx
```
### Dockerfile
请到 [Nginx 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/nginx) 查看。

View File

@@ -35,6 +35,7 @@ $ docker run -it --rm \
node:20-alpine \
node your-daemon-or-script.js
```
### Dockerfile
请到 [Node 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/node) 查看。

View File

@@ -13,6 +13,7 @@
```bash
$ docker run -it --rm -v "$PWD":/app -w /app php:alpine php your-script.php
```
### Dockerfile
请到 [PHP 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/php) 查看。

View File

@@ -40,6 +40,7 @@ $ docker run -it --rm \
redis \
sh -c 'exec redis-cli -h some-redis'
```
### Dockerfile
请到 [Redis 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/redis) 查看。

View File

@@ -14,6 +14,7 @@
$ docker run --name some-ubuntu -it ubuntu:20.04
root@523c70904d54:/#
```
### Dockerfile
请到 [Ubuntu 官方镜像文档目录](https://github.com/docker-library/docs/tree/master/ubuntu) 查看。