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 Found

2. 原因分析

错误原因
bullseye-backports 404Debian 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.1Debian 11 官方❌ 频繁 IP 冲突
3.4.2Kubic 仓库✅ 基本稳定

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

标签: none

添加新评论