使用Podman作为容器引擎的Ubuntu系统如何运行Docker Compose文件
Ubuntu系统基于Podman引擎运行Docker Compose文件的操作方案
Podman完全兼容Docker Compose的API规范,不需要依赖podman-docker包即可实现功能,以下是两种常用的可落地方案:
方案一:使用Podman原生适配的podman-compose工具
这个是Podman官方维护的Compose实现,和Docker Compose语法高度兼容,无需额外配置即可直接使用。
- 第一步:先安装Podman基础环境
sudo apt update && sudo apt install -y podman - 第二步:安装
podman-compose
Ubuntu 22.04及以上版本可直接从APT源安装:
更低版本的Ubuntu可以通过pip安装:sudo apt install -y podman-composepip3 install podman-compose - 第三步:使用方式和Docker Compose完全一致,仅需把命令前缀替换即可:
启动容器栈:podman-compose up -d
停止容器栈:podman-compose down
查看运行状态:podman-compose ps
方案二:让原生Docker Compose直接调用Podman后端
如果不想修改原有docker compose的操作习惯,可以通过配置让Docker Compose直接对接Podman的兼容API:
- 第一步:安装Docker Compose插件,无需安装完整的Docker引擎
sudo apt update && sudo apt install -y docker-compose-plugin - 第二步:启动Podman的用户级套接字服务,暴露兼容的API接口
systemctl --user enable --now podman.socket - 第三步:配置
DOCKER_HOST环境变量,让Docker Compose指向Podman套接字
临时生效(仅当前终端有效):
永久生效:把上述命令追加到export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock~/.bashrc(Bash用户)或~/.zshrc(Zsh用户)文件中,重启终端即可。 - 验证配置:执行
docker compose version,正常返回版本信息即为配置成功,后续可以完全沿用原来的docker compose系列命令操作Podman容器栈。
两种方案均兼容绝大多数Docker Compose V2/V3版本的语法,仅Docker专属的Swarm集群等特性无法支持,常规业务场景无需修改原有Compose配置文件即可直接运行。
内容的提问来源于stack exchange,提问作者Avik
相关产品推荐
相关产品推荐

