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