Podman安装与使用

安装与换源

安装

sudo apt update
sudo apt install -y podman
podman --version

配置国内源:
创建/etc/containers/registries.conf.d/514-podman-mirror.conf,添加以下内容:

unqualified-search-registries = ["docker.io"]

[[registry]]
location = "docker.io"

[[registry.mirror]]
location = "docker.m.daocloud.io"

[[registry.mirror]]
location = "docker.1ms.run"

[[registry.mirror]]
location = "hub.rat.dev"

[[registry.mirror]]
location = "docker.xuanyuan.me"

[[registry.mirror]]
location = "docker.1panel.live"

验证:
输入podman info --format='{{.Registries}}',应该输出:

map[docker.io:{docker.io {docker.io false } [{docker.m.daocloud.io false } {docker.1ms.run false } {hub.rat.dev false } {docker.xuanyuan.me false } {docker.1panel.live false }] false false} search:[docker.io]]

再尝试拉取podman pull docker.io/library/alpine:latest,会发现原本速度慢或连不上的情况变为高速下载

Pod支持

Pod的概念:
Pod 是容器的“逻辑主机”:无论是 Podman 还是 K8s,Pod 都代表一组共享网络命名空间、IPC 命名空间和存储卷的容器。
多容器协作单元:一个 Pod 可以包含主应用容器 + 辅助容器(如日志收集器、监控代理等),它们紧密耦合、共生命周期。
例如:一个 Web 应用容器 + 一个 Fluentd 日志 sidecar 容器,共享同一个 IP 和 volume。

典型用法

# 创建一个 Pod
podman pod create --name myapp-pod -p 8080:80

# 查看所有Pod
podman pod list

# 在该 Pod 中运行 Nginx 容器(与docker不同的地方就在于多了指定Pod名的参数`--pod myapp-pod`)
podman run -d --pod myapp-pod --name nginx nginx

# 在同一 Pod 中运行日志 sidecar(共享同一网络`myapp-pod`)
podman run -d --pod myapp-pod --name logger alpine tail -f /dev/null

# 查看 Pod 内容器共享 IP(Pod的网络是宿主机内部的一个子网,跟宿主机是桥接的关系)
podman pod inspect myapp-pod

# 查看所有容器(包含Podname的所有容器,除了刚刚创建的,还会有它自己创建的容器,是Pod的管理员)
podman ps --pod

# 停止Pod内所有容器运行
podman pod stop myapp-pod

# 启动Pod内所有容器
podman pod start myapp-pod

# 导出兼容K8s的Pod配置文件,K8s也能用
podman generate kube myapp-pod>myapp-pod.yaml

# 删除Pod
podman pod rm -f myapp-pod

# 利用Pod配置文件创建Pod(很像docker compose,但区别在于docker compose的多个容器是不同IP,podman的Pod是同一个IP)
podman play kube myapp-pod.yaml

设置容器/Pod开机自启

# 生成systemd的服务配置文件,name参数填要自启的容器名或Pod名
podman generate systemd --name myapp-pod --new --files

# 新建文件夹并复制刚刚生成的systemd服务配置文件(放到systemd扫描的路径之一)
mkdir -p ~/.config/systemd/user/
cp pod-myapp-pod.service container-*.service ~/.config/systemd/user/

# 重载systemd(让systemd发现这个服务)
systemctl --user daemon-reload

# 设置服务开机自启生效
systemctl --user enable --now pod-myapp-pod.service

# 把当前用户配置成黏连模式
sudo loginctl enable-linger $(whoami)
posted @ 2026-01-14 21:05  kksk43  阅读(0)  评论(0)    收藏  举报
特效
黑夜
侧边栏隐藏