podman部署到運行的容器里面,實現類似Docker in docker


解決在容器里面運行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 .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM