信息发布→ 登录 注册 退出

Podman 已成 Linux 官方标配!Docker 没戏了?

发布时间:2025-07-16

点击量:

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./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./link/f915833c0979810086c2ea49db2993c6

标签:# 数据库  # 这是  # 都是  # 的是  # 自己的  # 来完成  # 可以使用  # 还可以  # 可以查看  # 是一个  # 镜像  # ui  # https  # http  # podman  # mysql  # github  # html  # 架构  # spring boot  # spring  # 镜像源  # 区别  # ai  # 工具  # nginx  # docker  # git  # centos  # linux  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!