Podman是一个开源的容器运行时,与Docker基本兼容,更轻量,是Redhat默认的容器运行时。
Podman大部分情况下都可以把Docker的命令直接改为podman使用,但也有稍许差别
不同用户的Podman容器和镜像是独立的
Podman容器的开机启动
Docker因为有守护进程,所以可以通过--restart参数来设置容器的开机启动。Podman不行,但是Podman引入了Quadlet工具,从podman4.4版本内置了
Quadlet可以将容器交给systemd来管理,这样容器就可以在开机时自动启动,并且可以设置自动重启。
Quadlet的配置文件类似与Systemd的配置文件,纯手写还是比较麻烦的,好在有podlet工具,可以快速生成
生成好的*.container文件保存到/etc/containers/systemd/目录下,然后使用systemctl daemon-reload命令重新加载服务,就能在systemd中看到对应的服务了,操作对应的服务就可以启动、停止、重启容器了
X86架构下运行ARM64镜像
随着ARM64设备的持续增加,编译ARM64程序的需求就起来了,但是专门买一台ARM64的编译服务器不划算,使用QEMU模拟ARM64环境就是一种性价比选择
使用QEMU需要安装qemu-user-static包,这个包在Debian仓库中是有的,在CentOS上没有,懒得麻烦就使用Debian,交叉编译各种工具链也是Debian支持更好
apt install qemu-user-static
将 QEMU 用户模式静态二进制文件注册到内核中,这样系统就可以执行其他架构的可执行文件
podman run --rm --privileged multiarch/qemu-user-static:register --reset
实际情况是我执行这个操作时,提示已经注册过了,所以不执行这个应该也行
Podman运行ARM64架构的镜像,可以通过--arch参数指定
# 运行ARM64的python镜像
podman run -it --rm --arch=arm64 python:3.10-bullseye bash