Oamc

Docker 安装与常用操作 · 修改记录

这是 container/docker-install.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。

#1 2026-10-18 +76 −0 docs: 新增容器/安全分类,补 Windows 组策略与 Linux 内核救援,共 11 篇 69302a9
 new file mode 100644
 @@ -0,0 +1,76 @@
+---
+tags: [Docker, 容器, Linux]
+order: 10
+---
+
+# Docker 安装与常用操作
+
+## 场景
+
+要在 Linux 上跑几个服务,用容器隔离,升级和回滚都方便。
+
+## 前置条件
+
+- 64 位系统,内核 3.10 以上
+- 系统盘之外有数据盘(镜像和容器默认放 `/var/lib/docker`)
+- 能访问镜像源(内网要配镜像加速)
+
+## 配置
+
+```bash
+# 装 Docker CE
+dnf install -y dnf-plugins-core
+dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
+dnf install -y docker-ce docker-ce-cli containerd.io
+systemctl enable --now docker
+
+# 数据目录和日志限制
+mkdir -p /data/docker
+cat >/etc/docker/daemon.json <<'EOF'
+{
+  "data-root": "/data/docker",
+  "log-driver": "json-file",
+  "log-opts": { "max-size": "50m", "max-file": "3" },
+  "registry-mirrors": ["https://mirror.example.com"]
+}
+EOF
+
+systemctl restart docker
+```
+
+常用命令:
+
+```bash
+docker ps -a
+docker images
+docker run -d --name web -p 8080:80 -v /data/web:/usr/share/nginx/html nginx:1.25
+docker logs -f --tail 100 web
+docker exec -it web bash
+docker stats
+docker system df
+```
+
+## 验证
+
+```bash
+docker info | grep -E "Docker Root Dir|Storage Driver"
+docker run --rm hello-world
+curl -I http://127.0.0.1:8080
+```
+
+## 回滚
+
+```bash
+systemctl disable --now docker
+dnf remove -y docker-ce docker-ce-cli containerd.io
+rm -rf /data/docker
+```
+
+## 坑
+
+- **镜像默认放 `/var/lib/docker`**,跑几个月能把根分区写满。
+- 不限制日志大小,一个容器一天能写几十 G。
+- 容器里的时区默认 UTC,应用时间差 8 小时。
+- `-v` 挂载的宿主机目录权限不对,容器里写不进去。
+- `docker system prune` 会删掉没在运行的容器和悬空镜像,先确认。
+- 重启宿主后容器不会自动起,除非 `--restart always`。