小开发板podman升级
Podman 升级笔记(Debian 11 ARM 环境)
一、环境信息
| 项目 | 信息 |
|---|---|
| 操作系统 | Debian 11 (Bullseye) |
| 架构 | ARM (armhf / arm64) |
| 当前 Podman 版本 | 3.0.1+dfsg1-3+deb11u5 |
| 目标版本 | 3.4.2(Kubic 仓库提供) |
⚠️ 注意:Debian 11 由于依赖库版本较老(glibc、systemd),无法安装 Podman 4.x。如需 4.x,需升级到 Debian 12 (Bookworm)。
二、升级前的问题回顾
1. apt update 报错
Err:5 http://mirrors.aliyun.com/debian bullseye-backports Release
404 Not Found
Err:9 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_11 Release
404 Not Found2. 原因分析
| 错误 | 原因 |
|---|---|
bullseye-backports 404 | Debian 11 backports 已被归档,普通镜像不再提供 |
xUbuntu_11 仓库 404 | 错误添加了 Ubuntu 版本的 Kubic 仓库,而非 Debian 版本 |
三、解决方案步骤
第1步:修复 Debian 系统源(国内环境)
编辑 /etc/apt/sources.list:
sudo nano /etc/apt/sources.list推荐配置(阿里云镜像):
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib其他国内镜像选项:
| 镜像站 | 地址 |
|---|---|
| 腾讯云 | https://mirrors.tencent.com/debian/ |
| 清华大学 | https://mirrors.tuna.tsinghua.edu.cn/debian/ |
| 中科大 | https://mirrors.ustc.edu.cn/debian/ |
| 网易 | https://mirrors.163.com/debian/ |
用的如下list文件:
将此文件的内容**完全替换**为以下内容:
```text
# 标准 Debian 11 Bullseye 主仓库
deb http://deb.debian.org/debian/ bullseye main non-free contrib
deb http://deb.debian.org/debian/ bullseye-updates main non-free contrib
# 安全更新仓库(地址已修正)
deb http://security.debian.org/debian-security bullseye-security main non-free contrib
# 可选:归档的 backports 仓库(指向 archive.debian.org)
deb http://archive.debian.org/debian/ bullseye-backports main non-free contrib
```
第2步:删除错误的 Kubic 仓库
# 查看现有仓库文件
ls -la /etc/apt/sources.list.d/
# 删除错误的 Ubuntu 版本仓库
sudo rm -f /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
# 删除备份文件
sudo rm -f /etc/apt/sources.list.d/*.backup第3步:添加正确的 Debian 11 Kubic 仓库
# 添加仓库源
echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_11/ /' | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
# 添加 GPG 密钥
curl -fsSL https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_11/Release.key | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/devel_kubic_libcontainers_stable.gpg > /dev/null第4步:更新软件源并安装
# 清理旧缓存
sudo rm -rf /var/lib/apt/lists/*
# 更新源列表
sudo apt update
# 查看可用版本
apt list -a podman
# 安装指定版本
sudo apt install -y podman=100:3.4.2-4
# 验证版本
podman version四、升级结果
升级前后对比
| 版本 | 来源 | CNI 网络稳定性 |
|---|---|---|
| 3.0.1 | Debian 11 官方 | ❌ 频繁 IP 冲突 |
| 3.4.2 | Kubic 仓库 | ✅ 基本稳定 |
apt list -a podman 输出示例
podman/unknown 100:3.4.2-4 arm64
podman/unknown 100:3.4.2-4 armhf [upgradable from: 3.0.1+dfsg1-3+deb11u5]
podman/oldoldstable,now 3.0.1+dfsg1-3+deb11u5 armhf [installed]五、升级后的配置建议
保持 containers.conf 优化配置
文件位置:/etc/containers/containers.conf
[engine]
runtime = "runc"
cgroup_manager = "cgroupfs"
[containers]
cgroupns = "host"网络方案建议
| 方案 | 稳定性 | 适用场景 |
|---|---|---|
--network host | ⭐⭐⭐⭐⭐ | 推荐,彻底绕过 CNI 问题 |
| 默认桥接网络 | ⭐⭐⭐ | 3.4.2 已改善,可测试使用 |
六、如何升级到 Podman 4.x?
Debian 11 无法直接安装 Podman 4.x,需要先升级操作系统:
| 当前系统 | 目标系统 | Podman 版本 |
|---|---|---|
| Debian 11 (Bullseye) | Debian 12 (Bookworm) | 4.x+ |
Debian 11 → Debian 12 升级步骤(可选)
# 1. 备份系统
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 2. 将源中的 bullseye 替换为 bookworm
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
# 3. 更新系统
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
# 4. 重启系统
sudo reboot
# 5. 确认版本
cat /etc/os-release
podman version⚠️ 升级操作系统有风险,建议在测试环境先行验证。
七、常见问题与解决方法
| 问题 | 解决方法 |
|---|---|
bullseye-backports 404 | 使用国内镜像或指向 archive.debian.org |
| Kubic 仓库 404 | 确认使用 Debian_11 而非 xUbuntu_11 |
| GPG 密钥错误 | 重新下载并添加正确的 Release.key |
| 升级后容器无法启动 | 检查 containers.conf 配置,必要时重建容器 |
| 仍有 IP 冲突 | 改用 --network host 模式 |
八、快速修复脚本
将以下内容保存为 upgrade-podman.sh:
#!/bin/bash
echo "=== 修复 Debian 11 源并升级 Podman ==="
# 备份原配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为阿里云源
sudo tee /etc/apt/sources.list > /dev/null << 'EOF'
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
EOF
# 删除错误的 Kubic 仓库
sudo rm -f /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
sudo rm -f /etc/apt/sources.list.d/*.backup
# 添加正确的 Debian 11 Kubic 仓库
echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_11/ /' | sudo tee /etc/apt/sources.list.d/podman-kubic.list
curl -fsSL https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_11/Release.key | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/podman-kubic.gpg > /dev/null
# 更新并安装
sudo apt update
sudo apt install -y podman
# 验证
podman version
echo "=== 升级完成 ==="执行:
chmod +x upgrade-podman.sh
sudo ./upgrade-podman.sh九、总结
| 关键点 | 结论 |
|---|---|
| Debian 11 最高版本 | Podman 3.4.2(通过 Kubic 仓库) |
| Podman 4.x 要求 | Debian 12 (Bookworm) 或更高 |
| 推荐网络模式 | --network host(绕过 CNI 问题) |
| 国内源加速 | 使用阿里云/腾讯云/清华等镜像 |
升级后,貌似容器映射53端口有问题,需要如下修改成宿主机端口映射
podman run -d --name adguardhome \
-p 192.168.1.9:53:53/tcp \
-p 192.168.1.9:53:53/udp \
-p 3000:3000/tcp \
-p 8081:80/tcp \
-v /data/adguard/workdir:/opt/adguardhome/work:Z \
-v /data/adguard/confdir:/opt/adguardhome/conf:Z \
--log-opt max-size=10m \
--log-opt max-file=3 \
docker.io/adguard/adguardhome:edge