技巧杂烩

Podman 快速使用

Podman 可以代替 Docker 使用,快速使用 Podman

Podman

Podman 快速使用

 1Podman 是什么

Podman(Pod Manager)是一个 无守护进程(daemonless) 的容器管理工具,用来运行、构建和管理 OCI(Open Container Initiative) 兼容的容器和镜像。它的定位类似 Docker CLI,但有一些显著区别:

 • 无守护进程:Podman 不需要 dockerd 这样的常驻后台服务,每个容器都是直接由 fork/exec 生成的进程。

 • Rootless 模式:普通用户就能运行容器,无需 root 权限,提高安全性

 • 兼容 Docker CLI:大多数 Docker 命令参数可直接用 Podman 替换,如 docker run → podman run。

 • Pod 概念:与 Kubernetes 类似,支持在同一个网络命名空间下运行多个容器(Pod 模式)。

 • 镜像标准化:完全兼容 OCI 镜像格式,能直接拉取 Docker Hub 镜像。

 2Podman 基础命令

# 查看版本
podman --version

# 搜索镜像
podman search nginx

# 拉取镜像
podman pull nginx

# 列出本地镜像
podman images

# 运行容器
podman run -d --name mynginx -p 8080:80 nginx

# 查看运行的容器
podman ps

# 查看所有的容器
podman ps -a

# 停止容器
podman stop mynginx

# 启动容器
podman start mynginx

# 删除容器
podman rm mynginx

# 删除镜像
podman rmi nginx

 3Pod 概念与用法

Podman 引入了 Pod,可以让多个容器共享网络和 IPC 资源:

podman pod create --name mypod -p 8080:80

podman run -d --pod mypod nginx

podman run -d --pod mypod redis

这里 nginx 和 redis 共享同一个 Pod 的网络命名空间。

 4Rootless 模式

普通用户直接运行:

podman run --rm -it alpine sh

 5构建镜像

# myimage Tag 标签
# . Dockerfile 所在目录
podman build -t myimage .

 6简单工作流

# 拉取镜像
podman pull nginx

# 运行容器
podman run -d --name web -p 8080:80 nginx

# 查看运行状态
podman ps

# 进入容器
podman exec -it web bash

# 停止
podman stop web

# 删除
podman rm web

 7Podman VM

在非 Linux 平台(Mac / Windows) 上使用 Podman 时,需要一个轻量虚拟机来提供 Linux 内核环境,podman machine 是用来管理这个虚拟机的工具。

# 初始化一个 Podman 虚拟机
podman machine init

# 启动虚拟机
podman machine start

# 停止运行中的虚拟机
podman machine stop

# 列出当前的虚拟机及状态
podman machine list

# 进入虚拟机 SSH
podman machine ssh
podman machine ssh "cat /etc/os-release"

# 删除虚拟机
podman machine rm

# 查看虚拟机的详细信息
podman machine inspect

# 重置虚拟机到初始状态
podman machine reset

# 动态修改虚拟机资源
podman machine set --cpus=4 --memory=8192

文章标题:Podman 快速使用

文章作者:浅小沫

文章链接:https://blog.truimo.com/posts/podman-quick-start


您可以自由在任何媒介以任何形式分享本作品,但需署名,且不得用于商业目的或改编。若分发衍生作品,须采用相同的许可协议。

本博客的所有原创内容采用 CC BY-NC-ND 4.0 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。