家用住宅主机Linux Podman替代Docker部署中转

为什么选择Podman替代Docker部署中转站

很多家庭用户用旧电脑或NAS跑中转服务,但Docker需要守护进程且占用资源较高。
Podman是红帽主导的容器引擎,完全兼容Docker命令行,不需要后台守护进程,支持rootless运行,更适合家用Linux主机。
本教程以Ubuntu 22.04为例,手把手教你用Podman替代Docker部署中转站(如frp、Nginx代理或socks5隧道)。

准备条件:系统与Podman安装

1. 确认系统环境

  • 操作系统:Linux(推荐Ubuntu 20.04+、CentOS 8+、Debian 11+)
  • 内存:至少512MB(中转站通常很轻量)
  • 网络:需要公网IP或内网穿透(根据实际场景)

2. 安装Podman

打开终端,执行以下命令:

# Ubuntu/Debian
sudo apt update
sudo apt install podman -y

# CentOS/RHEL
sudo yum install podman -y

安装后验证版本:

podman --version

输出如 podman version 4.3.1 即成功。

注意:Podman默认使用容器镜像仓库 docker.io,与Docker兼容,无需额外配置。

核心步骤:拉取镜像并运行中转容器

1. 拉取中转站镜像

以流行的frp服务端为例:

podman pull docker.io/snowdreamtech/frps:latest

也可以拉取其他镜像,如 alpine/socat 用于端口转发。

2. 创建配置目录与文件

mkdir -p ~/frp
cd ~/frp
nano frps.toml

写入最小配置(根据实际需求修改):

bindPort = 7000
vhostHTTPPort = 7080
vhostHTTPSPort = 7443

3. 运行容器(类似docker run)

podman run -d \
  --name frps \
  -p 7000:7000 -p 7080:7080 -p 7443:7443 \
  -v ~/frp/frps.toml:/etc/frp/frps.toml:ro \
  --restart=always \
  docker.io/snowdreamtech/frps:latest

参数说明:

  • -d 后台运行
  • --name 容器名称
  • -p 端口映射(主机端口:容器端口)
  • -v 挂载配置文件(:ro 只读)
  • --restart=always 自动重启(类似docker的restart always
注意:Podman默认以rootless模式运行,绑定低于1024的端口需提权或使用非特权端口。这里使用7000、7080、7443,均为高位端口。

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

1. rootless模式端口限制

如果必须使用80、443等端口,有两种方案:

  • 方案A:使用Podman的--privileged并映射到高位,然后用iptables转发。
  • 方案B:以root身份运行(不推荐,失去安全优势)。

对于家用环境,建议将中转站端口设为高位,然后通过路由器端口映射或Nginx反向代理。

2. SELinux导致挂载失败

CentOS/RHEL系统需检查SELinux:

sudo setenforce 0  # 临时关闭(仅测试)
# 或添加容器规则
sudo semanage fcontext -a -t container_file_t "$HOME/frp(/.*)?"
sudo restorecon -Rv $HOME/frp

3. 防火墙放行端口

sudo ufw allow 7000/tcp
sudo ufw allow 7080/tcp
sudo ufw allow 7443/tcp

4. 开机自启设置(使用systemd)

Podman支持自动生成systemd服务:

mkdir -p ~/.config/systemd/user
cd ~/.config/systemd/user
podman generate systemd --name frps --files
systemctl --user enable container-frps
systemctl --user start container-frps

确保用户linger开启:

sudo loginctl enable-linger $USER

效果验证与高频问题

1. 验证容器运行状态

podman ps

应显示frps容器状态为Up。
检查日志:

podman logs frps

看到类似 start frps success 字样。

2. 测试中转功能

根据你部署的中转站类型验证:

  • 若是frp,客户端连接后查看服务端日志是否有连接成功。
  • 若是socat或Nginx,尝试用curl访问映射端口。

3. 高频问题解答

  • Q: Podman和Docker镜像是否完全通用? 是的,Podman直接拉取Docker Hub的镜像,命令几乎一致。
  • Q: 为什么容器日志没有输出? 很多镜像默认日志输出到文件,尝试 podman exec frps cat /var/log/frps.log
  • Q: 如何更新镜像? podman pull 新版本后,删除旧容器重新run即可。

总结

本教程带你在家用住宅主机上用Podman替代Docker部署了中转站。
全部操作无需Docker daemon,资源占用更低,rootless模式也更安全。
如果你后续遇到容器无法启动或端口冲突,优先检查防火墙和SELinux。
更多相关教程(如配置frp客户端、Nginx反向代理)可以继续浏览本站。

分享到:
上一篇
外贸站宝塔面板网站缓存插件适配海外搜索引擎
下一篇
跨境独立站宝塔面板服务器定时重启维护脚本设置
1
系统公告

机房迁移升级通知

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