Featured image of post 【podman实践】常用podman命令

【podman实践】常用podman命令

podman使用场景分类的常用命令:

1. 基础操作 (Basic Operations)

  • 查看版本信息:
1
podman version
  • 查看系统信息(路径、存储驱动等):
1
podman info
  • 获取命令帮助:
1
2
podman --help 
podman [command] --help

2. 镜像管理 (Image Management)

镜像就像是容器的“模板”。

  • 拉取镜像:
1
podman pull <image_name>
  • 列出本地镜像:
1
podman images
  • 删除镜像:
1
podman rmi <image_id>
  • 构建镜像(通过 Containerfile 或 Dockerfile):
1
podman build -t <tag_name> .
  • 搜索镜像:
1
podman search <keyword>

3. 容器生命周期管理 (Container Management)

  • 运行容器:
1
2
3
4
podman run -d --name <container_name> -p <host_port>:<container_port> <image_name>
-d: 后台运行
-it: 交互式运行
--rm: 容器停止后自动删除
  • 列出容器(正在运行):
1
podman ps
  • 所有容器(含停止):
1
podman ps -a
  • 停止/启动/重启:
1
 podman stop <container_id或者name>
1
podman start <container_id或者name>
1
podman restart <container_id或者name>
  • 进入运行中的容器:
1
podman exec -it <container_id或者name> /bin/bash
  • 查看日志:
1
podman logs -f <container_id>
  • 删除容器:
1
podman rm -f <container_id>

4. Pod 管理 (Pod Management)

这是 Podman 的特色功能(源自 Kubernetes 概念),允许将多个容器组合在一起共享网络。

  • 创建 Pod:
1
podman pod create --name <pod_name> -p 8080:80
  • 在 Pod 中运行容器:
1
podman run -d --pod <pod_name> --name <c1> <image>
  • 列出 Pod:
1
podman pod ps
  • 停止/删除 Pod: *
1
2
podman pod stop <pod_name>
podman pod rm <pod_name>

5. 资源清理 (Cleanup)

长期使用后,系统可能会积累很多无用数据。

  • 清理已停止的容器:
1
podman container prune
  • 清理未使用的镜像:
1
podman image prune
  • 一键全清理(谨慎使用):
1
podman system prune -a

6. 与 Docker 的“小抄”

如果你是从 Docker 迁移过来的,可以记住这个“必杀技”:

别名设置:.bashrc.zshrc 中添加

1
alias docker=podman

由于两者 CLI 兼容性极高,大部分脚本可以直接运行。


7.容器自启动管理 (Systemd 整合)

由于 Podman 没有守护进程,物理机重启后容器不会自动启动。Podman 的官方方案是将其生成为 Systemd 服务。

  • cd用户目录:
1
2
mkdir -p ~/.config/systemd/user/
cd  ~/.config/systemd/user/
  • 生成 Systemd 配置文件
1
podman generate systemd --name <container_name> --files --new

--new 参数非常重要:它确保服务启动时会自动创建容器,停止时销毁容器,保证环境洁净。

  • 重载配置:
1
systemctl --user daemon-reload
  • 设置开机自启:
1
systemctl --user enable --now container-<name>.service
  • 让用户离线也保持运行

对于非 Root 用户,默认在注销登录后容器会停止。需要开启 linger

1
loginctl enable-linger <your_username>
  • 取消开机自启动
1
systemctl --user disable  container-<name>.service

8.Systemd 常用命令

  • 基础服务管理 (Service Control)
1
2
3
4
5
启动服务:systemctl --user start <service_name>
停止服务:systemctl --user stop <service_name>
重启服务:systemctl --user restart <service_name>
查看服务状态:systemctl --user status <service_name>
查看运行日志:journalctl --user -u <service_name> -f
>  -f: 实时滚动查看

>  -n 50: 查看最后 50 行

  • 自启动设置 (Enable/Disable)
1
2
3
4
启用开机自启:systemctl --user enable <service_name>
取消开机自启:systemctl --user disable <service_name>
启用并立即启动:systemctl --user enable --now <service_name>
检查是否已启用:systemctl --user is-enabled <service_name>

  • 配置重载与管理
1
2
3
重载 Systemd 配置:systemctl --user daemon-reload
列出所有活动服务:systemctl --user list-units --type=service
列出所有已安装服务(包括未运行):systemctl --user list-unit-files
热爱生活 学无止境
使用 Hugo 构建
主题 StackJimmy 设计