podman 简介
Podman 是一个开源项目,在 GitHub 上已获得超过 12,000 个星标,可以在大多数 Linux 平台上运行。Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 OCI(开放容器倡议)容器和容器镜像。Podman 提供了与 Docker 兼容的命令行工具,用户可以简单地将 docker 命令别名设置为 podman,因此,如果你熟悉 Docker,可以轻松上手 Podman。
安装和启动 在 CentOS 7 上,可以使用 yum 命令安装 Podman:
yum -y install podman
安装成功后,使用以下命令启动 Podman 服务:
systemctl start podman
使用 要下载 Nginx 镜像,可以使用以下命令:
podman pull nginx:1.10
在下载镜像时,可以选择不同的镜像源,例如从 docker.io(即 DockerHub)下载。

由于 Podman 容器默认情况下没有权限访问宿主机的文件系统,当需要进行目录挂载时,需要使用 --privileged 选项来开启权限。以下是运行 Nginx 容器的命令,与 Docker 类似:
podman run -p 80:80 --name nginx --privileged -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -d nginx:1.10
运行成功后,将 mall学习教程 前端项目放入 /mydata/nginx/html 目录即可正常访问。

运行 MySQL 容器的命令与使用 Docker 类似:
podman run -p 3306:3306 --name mysql --privileged -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
进入 MySQL 容器并查看数据库信息的命令如下:
# 进入 MySQL 容器 podman exec -it mysql /bin/bash # 登录 MySQL mysql -proot -uroot # 查看所有数据库 show databases;
Podman 的使用体验与 Docker 非常相似,感觉就像是换了个壳的 Docker。

接下来,我们尝试在 Podman 中运行一个 Spring Boot 应用。首先,下载已上传到 DockerHub 的镜像:
docker pull macrodocker/mall-tiny-boot:latest
运行 Spring Boot 应用时,遗憾的是 Podman 不支持 --link 选项来连接 MySQL 容器,只能使用 IP 地址访问 MySQL 服务:
podman run -p 8088:8088 --name mall-tiny-boot --privileged -e spring.datasource.url='jdbc:mysql://192.168.3.106:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai' -v /etc/localtime:/etc/localtime -v /mydata/app/mall-tiny/logs:/var/logs -d macrodocker/mall-tiny-boot:latest
运行成功后,可以访问 Spring Boot 应用的 Swagger 页面,访问地址为:https://www.php.cn/link/abc8818c03e3574658e1a5dd95d2ff8d

使用 podman ps 命令可以查看所有运行中的容器:

使用 podman images 命令可以查看所有下载的镜像:

如果未安装 Docker 而输入 docker 命令,会提示安装 podman-docker 插件,该插件会直接将 docker 命令转换为 podman 命令,这是否意味着 Podman 想要彻底取代 Docker?

可视化管理 打开 Podman 容器管理界面,可以查看所有运行中的容器和已下载的镜像:

还可以实时查看容器日志,重启、停止或删除容器:

也可以直接进入容器执行命令,比如查看 MySQL 容器中的数据库:

还可以直接进行镜像下载:

通过镜像来运行容器也非常方便:

Podman VS Docker
| Podman | Docker | |
|---|---|---|
| 架构 | 无守护进程,可在启动容器的用户下运行容器 | 使用守护进程创建镜像和运行容器 |
| 安全 | 允许容器使用 Rootless 特权 | 守护进程拥有 Root 权限 |
| 运行容器 | 需要其他工具来管理服务并支持后台容器的运行 | 使用守护进程管理和运行容器 |
| 构建镜像 | 需要容器镜像生成器 Buildah 的辅助 | 可以自己构建容器镜像 |
| 理念 | 采用模块化的方法,依靠专门的工具来完成特定任务 | 一个独立的、强大的工具 |
| 使用 | 兼容大部分 Docker 命令,有专门的 Docker 兼容插件 | 使用自己的命令 |
总结 今天体验了一把 Podman,确实与 Docker 使用起来非常相似。Podman 和 Docker 的主要区别在于是否使用守护进程来管理容器以及它们的理念。Docker 强调 all in one,致力于成为一款功能强大的工具,而 Podman 则更强调 模块化,通过其他工具的辅助来完成特定任务。Docker 和 Podman 都是非常优秀的容器引擎,如果你的项目中已经使用了 Docker,没必要换成 Podman,如果你的项目才起步,技术选型时可以考虑 Podman。
项目地址:https://www.php.cn/link/f915833c0979810086c2ea49db2993c6
以上就是Podman 已成 Linux 官方标配!Docker 没戏了?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号