Oamc

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

这是 container/Docker 安装与常用操作.md 的改动记录。后台每次保存都会留一份快照, 这里显示的是快照之间的差异,不会混入其他文章的改动。

还没有后台修改记录。

Git 提交记录

下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。

#1 2026-10-25 +0 −0 refactor: 全部文章文件名中文化 0aa8fe6

这次没有正文改动。

#2 2026-10-18 +76 −0 docs: 新增容器/安全分类,补 Windows 组策略与 Linux 内核救援,共 11 篇 69302a9
 @@ -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`。