Podman替代Docker轻量化部署中转站

容器技术中Docker长期占据主流,但Podman作为无守护进程、支持rootless模式的替代方案,在资源有限或安全敏感的部署场景中越来越受关注。
如果你打算搭建一个轻量化的中转站(例如文件转发、代理跳板或数据桥接),用Podman代替Docker不仅能降低内存占用,还能避免部分权限困扰。
本文从零开始,带你在Linux服务器上完成Podman替代Docker并运行中转站容器的全过程。

部署前的环境准备

确保你有一台可以执行命令的Linux服务器(Ubuntu 20.04+或CentOS 7+均可)。
如果你从未接触过容器,放心——所有操作只有几行命令。
首先要安装Podman。

# Ubuntu/Debian
sudo apt update && sudo apt install podman -y
# CentOS/RHEL/Fedora
sudo dnf install podman -y  # 或 yum install podman -y

安装完成后检查版本,确认可用:

podman --version
# 输出类似 podman version 4.3.1

Podman兼容Docker的镜像格式,所以Docker Hub上的镜像可以直接使用。
为了拉取中转站所需的镜像,先确保网络畅通。
如果你在中国大陆服务器,可能需要配置镜像加速(参考文末FAQ)。

三步完成中转站容器部署

这里以搭建一个简单的HTTP转发中转站为例,使用nginx:alpine镜像模拟代理功能。
你也可以替换成其他中转服务镜像(比如squidfrp等),操作逻辑完全一致。

第一步:拉取镜像

podman pull docker.io/library/nginx:alpine

拉取成功后,可通过podman images查看已下载镜像。

第二步:创建并启动容器
下面命令会创建一个名为transit-station的容器,将宿主机8080端口映射到容器的80端口,并设置重启策略:

podman run -d --name transit-station -p 8080:80 --restart=always nginx:alpine

参数说明:-d后台运行,--name指定容器名,-p映射端口,--restart=always保证进程退出后自动重启。

第三步:验证容器状态

podman ps -a

如果容器状态为Up,说明运行正常。
现在访问http://你的服务器IP:8080,应该能看到Nginx默认欢迎页。
这个页面就是一个最基础的中转确认点,后续你可以替换默认配置文件实现真正的转发功能。

避坑指南:常见问题与解决方法

  • 端口占用报错:启动容器时提示port is already allocated,说明8080端口已被其他进程占用。执行sudo lsof -i :8080查看占用程序,或用netstat -tulpn | grep 8080。解决办法:换一个端口,例如-p 8081:80
  • 权限不足:如果你使用非root用户安装Podman,运行podman run时提示cannot re-exec process,通常是因为用户未加入podman组或系统缺少newuidmap组件。执行sudo usermod -aG podman $USER并重新登录;或直接使用sudo podman临时提权。
  • 镜像拉取过慢:国内服务器拉取Docker Hub镜像可能超时。可以配置Podman的镜像加速器:编辑/etc/containers/registries.conf,在unqualified-search-registries下方添加[[registry]]段落,参考官方文档设置阿里云或中科大加速地址。
  • 容器自动重启不生效--restart=always在Podman中依赖systemd模式。确保创建容器时没有漏写该参数,并建议设置容器自启动:podman generate systemd --name transit-station --new > /etc/systemd/system/container-transit-station.service,然后systemctl enable --now container-transit-station

效果验证与功能测试

部署完成后,除了通过浏览器访问测试页,还可以用curl检查服务是否正常响应:

curl -I http://localhost:8080
# 预期输出包含 HTTP/1.1 200 OK

查看容器日志确认无异常:

podman logs transit-station

如果后续需要修改中转站配置(例如替换Nginx转发规则),可通过挂载配置文件目录的方式重新创建容器,或使用podman cp复制文件到容器内。

高频问题解答

Q:Podman和Docker命令有什么区别?
A:大部分命令可以直接把docker替换为podman,例如podman runpodman pspodman exec。不同点在于Podman默认无守护进程且支持rootless,但不支持docker-compose(可用podman-compose或直接使用podman play kube配合YAML)。

Q:中转站需要暴露多个端口怎么办?
A:在-p参数中多次添加即可,例如-p 8080:80 -p 8443:443。也可使用--network host模式直接使用宿主机网络(注意安全性)。

Q:如何升级中转站容器镜像?
A:先podman stop transit-station && podman rm transit-station,再重新podman pull新镜像,然后按相同参数创建新容器。为保留数据,建议将配置文件和日志映射到宿主机卷(-v /host/path:/container/path)。

如果你在实践过程中遇到其他奇怪报错,建议先检查系统时间、SELinux状态(可临时setenforce 0测试)、以及Podman版本是否过旧。
完成本文操作后,你已具备用Podman部署轻量化中转站的基本能力,后续可灵活调整容器镜像实现文件、流量、API等不同场景的中转需求。

分享到:
上一篇
缓存插件适配海外搜索引擎提速站点
下一篇
用定时重启维护脚本自动更新站点服务,新手也能操作的完整教程
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意