Podman配置与使用

Podman配置与使用

安装参照官方教程:

debian系的话,opensuse仓库速度有点慢,暂时还没有国内镜像

红帽系和蜥蜴系都是自带的,用起来问题也少

安装完成后可以查看 /etc/containers 目录下是否有配置文件,如果没有的话:

sudo mkdir -p /etc/containers
sudo curl https://raw.githubusercontent.com/projectatomic/registries/master/registries.fedora -o /etc/containers/registries.conf
sudo curl https://raw.githubusercontent.com/containers/skopeo/master/default-policy.json -o /etc/containers/policy.json

使用时如果出现类似这样的错误:

cannot clone: Operation not permitted
user namespaces are not enabled in /proc/sys/kernel/unprivileged_userns_clone
Error: could not get runtime: cannot re-exec process

执行命令:

sudo sysctl kernel.unprivileged_userns_clone=1
echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf

另外查看一下 /etc/subuid 和 /etc/subgid 这两个文件中是否有 uid:10000:65536 如果没有的话就加上,如 ruitard:10000:65536

sudo touch /etc/sub{u,g}id
sudo usermod --add-subuids 10000-65536 $(whoami)
sudo usermod --add-subgids 10000-65536 $(whoami)
rm /run/user/$(id -u)/libpod/pause.pid

接下来设置 podman 的下载镜像,目前只是 DockerHub 的镜像

创建配置文件 $HOME/.config/containers/registries.conf

unqualified-search-registries = ['docker.io', 'k8s.gcr.io', 'quay.io']

[[registry]]
prefix = "docker.io"
location = "hub-mirror.c.163.com"

[[registry.mirror]]
prefix = "docker.io"
location = "dockerhub.azk8s.cn"

[[registry]]
prefix = "k8s.gcr.io"
location = "gcr.azk8s.cn/google_containers"

[[registry]]
prefix = "quay.io"
location = "quay.azk8s.cn"


切换为 cgroupv2:

将 /etc/default/grub 文件中的 GRUB_CMDLINE_LINUX 字段内容中添加 systemd.unified_cgroup_hierarchy=1,然后 sudo update-grub,重启电脑

这是我目前找到的 podman 能用的 docker 镜像,不知道为什么USTC和华为的镜像podman不能用,可能是镜像的方式不一样。

参考自:

如果运行容器时出现了一些其它错误,比如:

Operation not permitted: OCI runtime permission denied error

这个时候可以试一下:

podman system reset

接下来用postgresql来做一个简单的演示:

podman pull postgres:alpine
podman pod create -n postgres-pod -p 5432:5432
podman volume create pgdata
podman run --name postgres --pod postgres-pod -e POSTGRES_PASSWORD=secret -v pgdata:/var/lib/postgresql/data -d postgres:alpine

外部通过 DBeaver 连接成功

编辑于 2020-04-14 16:58