问题一: root用户使用出现 ERRO[0000] runroot must be set
旧版本更换driver参数可以不指定runroot和graphRoot,但是运行会有告警信息,新版本必须补全配置。
/etc/containers/storage.conf
[storage]
driver = "btrfs"
runroot = "/run/containers/storage"
graphRoot = "/var/lib/containers/storage"
问题一: failed to find plugin "dnsname"
dnsname网络插件已经被弃用,4.0使用netavark作为默认网络后端。
https://github.com/containers/netavark/
解决办法需要将默认网络后端修改正确,并且重新创建新的网络连接到容器。
1. 查看当前用户的储存目录
因为podman是rootless容器,每个用户的目录不一样。需要找到对应的目录。
podman info --format json | jq .store.graphRoot
# 没有jq工具用grep
podman info --format json | grep graphRoot
2.修改defaultNetworkBackend
先查出以前所有容器的网络配置
podman ps -a --format "{{.ID}}" | xargs -I ID podman inspect ID --format json | jq '.[0].Name,(.[0].NetworkSettings.Networks | keys | .[0])'
进去graphRoot目录后执行
cd $graphRoot
echo -n 'netavark' > defaultNetworkBackend
后面就是补配置的过程
podman network create $NETWORK_NAME
podman network connect $NETWORK_NAME $CONTAINER_NAME
删除旧的cni配置,目录在~/.config/cni/net.d
......这个问题找了好久,幸亏我有一个新的系统,我在podman info命令中对比出来了defaultNetworkBackend不同