解決在容器里面運行Podman 錯誤:
could not get runtime: kernel does not support overlay fs: 'overlay' is not supported over xfs at "/var/lib/containers/storage/overlay": backing file system is unsupported for this graph driver
podman run --privileged -it --rm -v /var/run/containers/storage:/var/run/containers/storage -v /var/lib/containers/storage:/var/lib/containers/storage centos:latest
這樣運行podman info 沒有問題
推薦的一種方式
[storage]
driver = "overlay"
[storage.options]
mount_program = "/usr/bin/fuse-overlayfs"
sed -i 's/#mount_program/mount_program/g' /etc/containers/storage.conf
podman run --privileged -it --rm centos:latest
dnf install podman -y
sed -i 's/#mount_program/mount_program/g' /etc/containers/storage.conf
podman info
但是還有一個問題是在podman build 的時候發生的錯誤
Error: OCI runtime error: systemd cgroup flag passed, but systemd support for managing cgroups is not available
解決方案:
1. 容器運行時知道 cgroup_manager="cgroupfs"
podman --cgroup-manager run --privileged -it --rm -v /var/run/containers/storage:/var/run/containers/storage -v /var/lib/containers/storage:/var/lib/containers/storage centos:latest
2.設置 containers.conf
vim /etc/containers/containers.conf
[engine]
cgroup_manager="cgroupfs"
第一種方式podman,沒有改變
podman info |egrep cgroupManager
cgroupManager: systemd
本人測試第二種方式沒問題問題(推薦方式)
podman info |egrep cgroupManager
cgroupManager: cgroupfs
在K8S 部署的時候需要指定的配置文件
podman push nginx 鏡像的時候發生下面的報錯
原因是harbor版本太老,不支持新的鏡像格式
默認podman build 是OCI
podman build --help |egrep format
--format format format of the built image's manifest and metadata. Use BUILDAH_FORMAT environment variable to override. (default "oci")
解決方案:
https://bugzilla.redhat.com/show_bug.cgi?id=1833008
--format docker
podman build -t nginx:test --format docker -f Dockerfile-nginx .