Podman 使用与部署指南
安装 Podman
Linux
Ubuntu
更新软件包列表:
安装 Podman:
验证安装:
CentOS/RHEL
启用 Kubic 项目的仓库(对于 RHEL,首先需要启用 EPEL 仓库):
验证安装:
MacOS
安装 Homebrew(如果尚未安装):
安装 Podman:
初始化虚拟机:
启动虚拟机:
验证是否可以运行容器:
Windows (通过 WSL)
安装 WSL 2:
在 PowerShell 中运行:
重启电脑。
在 WSL 中安装 Ubuntu(从 Microsoft Store)。
在 Ubuntu 中更新并安装 Podman:
验证安装:
配置 Podman
运行 rootless(无 root 权限)模式
如果 rootless
选项为 true
,说明 Podman 以无 root 权限运行,否则可手动切换:
设置 Podman 默认存储路径
Podman 默认使用 ~/.local/share/containers
作为存储路径,可通过环境变量修改:
配置镜像源
Podman 默认使用 quay.io
,但可以配置 docker.io
或 registry.cn-hangzhou.aliyuncs.com
(适用于国内环境):
添加:
使用 Podman 部署容器
运行容器
1. 后台运行容器
如果 /bin/bash
执行失败,可以尝试 /bin/sh
2. 指定容器名
通过 podman ps
查看容器状态
。
3. 使用 create
创建容器
使用 podman start
启动容器
4. 查看运行中的容器
如果要查看所有(包括停止的)容器:
5. 停止和删除容器
6. 拉取镜像
7. 查看本地镜像
8. 删除镜像
Podman 网络管理
Podman 允许用户创建自定义网络,以便多个容器相互通信。
1. 创建网络
2. 运行容器并连接到网络
3. 查看网络
4. 删除网络
5. 容器网络
1. 使用宿主机网络
2. 端口映射
将宿主机的端口映射到容器的端口:
访问宿主机的 8080 端口即可访问容器中的 80 端口
高级特性
构建多阶段 Dockerfile
多阶段构建可以优化 Dockerfile,减小最终镜像的大小:
# 第一阶段:构建阶段
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .
# 第二阶段:运行阶段
FROM alpine:latest
WORKDIR /root/
COPY /app/main .
CMD ["./main"]
使用 Podman 构建:
Podman 与 Kubernetes 兼容
Podman 可直接导出 Kubernetes 配置文件,并与 Kubernetes 无缝对接。
5.1 生成 Kubernetes YAML
5.2 使用 Podman 启动 Kubernetes YAML
其他注意事项
Rootless 模式:Podman 支持以非特权用户运行容器,增强安全性
镜像管理:使用
podman images
查看镜像,podman rmi
删除镜像
总结
Podman 提供了强大的无守护进程容器管理功能,并完全兼容 Docker 命令。相比 Docker,它更加安全(支持 rootless)、支持 Pod 机制、可直接集成 Kubernetes,是现代容器化部署的一个优秀选择。
如果你习惯了 Docker,可以直接使用 Podman 作为替代方案,而不需要重新学习命令。此外,Podman 的 Pod 机制、Kubernetes 兼容性和安全性使其成为生产环境中一个更安全和灵活的选择。
评论