学习笔记
Git
  • C#
  • F#
  • AspNetCore
  • EF Core
  • WPF
  • Tauri
  • IoTDB
  • Redis
  • Docker
  • Kubernetes
  • RabbitMQ
  • 日志

    • NLog的配置文件
Linux
  • 基础环境之WSL
基础设施
  • Vue

    • Vue基础
VS Code的插件与玩法
Rust
Python
  • Maven
  • Spring Boot
实际项目
我的博客
Git
  • C#
  • F#
  • AspNetCore
  • EF Core
  • WPF
  • Tauri
  • IoTDB
  • Redis
  • Docker
  • Kubernetes
  • RabbitMQ
  • 日志

    • NLog的配置文件
Linux
  • 基础环境之WSL
基础设施
  • Vue

    • Vue基础
VS Code的插件与玩法
Rust
Python
  • Maven
  • Spring Boot
实际项目
我的博客
  • Debian12初始化
  • 双网卡配置主副网卡
  • Rsync同步文件
  • Podman入门

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
Last Updated:
Contributors: 吴俊城
Prev
Rsync同步文件