mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-10-20 17:56:30 +00:00
全书此前是真·五五开:含中文的括号 336 处半角 : 336 处全角,而且**在同一文件 内混用**——`18_security/18.1_kernel_ns.md` 第 11/17/20 行写 `(如 runC)`, 第 31 行写 `(用户命名空间映射)`。这不是体例问题,是它自己跟自己不一致。 集群里其余 13 本都一边倒(llm_internals 5 : 1049、oc_guide 2 : 713、 forward_deployed_engineering_guide 0 : 108),blockchain_guide 已在 2026-08-05 按同一方向统一过 97 处,故取全角,而非另立新规。全角括号前后不留空格, 原先 `概念 (镜像、容器、仓库) 和` 两侧的空格一并收掉。 **纯拉丁内容的半角括号一个没动**——`新建一个层 (Layer)`、`项目 (project)` 保持原样:改动前后「半角且内容纯拉丁」的数量都是 **1163**,而「半角且含中文」 从 **336 变成 0**。 其余验证:改动前后各自抹掉全部空白与圆括号后**逐字节相同**(两侧均 19559 字符); 左右括号总数改动前后都是 399 : 399,证明没有吞括号也没有配错对。 `check_project_rules` 202/202、`check_emphasis` 202/202、37 tests OK、 根 `format_checker` 与 `validate_codeblocks` 干净、`git diff --check` 干净。
2.7 KiB
2.7 KiB
17.3 Podman - 下一代 Linux 容器工具
版本说明:Podman 保持活跃的开发和发布周期。建议访问 Podman 官方文档 和 GitHub Releases 获取最新版本。
Podman 是一个无守护进程、与 Docker 命令高度兼容的下一代 Linux 容器工具。它由 Red Hat 开发,旨在提供一个更安全的容器运行环境。
17.3.1 Podman vs Docker
Podman 和 Docker 在设计理念上存在显著差异,主要体现在架构和权限模型上。
| 特性 | Docker | Podman |
|---|---|---|
| 架构 | C/S 架构,依赖守护进程 (dockerd) |
无守护进程 (Daemonless) |
| 权限 | 默认需要 root 权限(虽有 Rootless 模式) | 默认支持 Rootless(非 root 用户运行) |
| 生态 | 完整的生态系统 (Compose, Swarm) | 专注单机容器,配合 Kubernetes 使用 |
| 镜像构建 | docker build |
podman build 或 buildah |
17.3.2 安装
Podman 支持多种操作系统,安装过程也相对简单。
CentOS / RHEL
$ sudo yum -y install podman
macOS
macOS 上需要安装 Podman Desktop 或通过 Homebrew 安装:
$ brew install podman
$ podman machine init
$ podman machine start
17.3.3 基本使用
podman 的命令行几乎与 docker 完全兼容,大多数情况下,你只需将 docker 替换为 podman 即可。
运行容器
## $ docker run -d -p 80:80 nginx:alpine
$ podman run -d -p 80:80 nginx:alpine
列出容器
$ podman ps
构建镜像
$ podman build -t myimage .
17.3.4 Pods 的概念
与 Docker 不同,Podman 支持“Pod”的概念(类似于 Kubernetes 的 Pod),允许你在同一个网络命名空间中运行多个容器。
## 创建一个 Pod
$ podman pod create --name mypod -p 8080:80
## 在 Pod 中运行容器
$ podman run -d --pod mypod --name webbing nginx
17.3.5 迁移到 Podman
如果你习惯使用 docker 命令,可以简单地设置别名:
$ alias docker=podman
Systemd 集成
Podman 可以生成 systemd 单元文件,让容器像普通系统服务一样管理。
## 创建容器
$ podman run -d --name myweb -p 8080:80 nginx
## 生成 systemd 文件
$ podman generate systemd --name myweb --files --new
## 启用并启动服务
$ systemctl --user enable --now container-myweb.service
Podman Compose
虽然 Podman 兼容 Docker Compose,但在某些场景下你可能需要明确使用 podman-compose。
$ pip3 install podman-compose
$ podman-compose up -d