容器镜像即操作系统,对 bootc 的体验记录
可引导的容器镜像
在体验一段时间的 fedora 不可变原子操作系统接触到了一个叫 bootc 的技术,它基于 ostree,允许通过 OCI 标准的 Containerfile(Dockerfile) 来构建一个可引导启动的容器镜像。可实现叠层更新的同时,也可切换任意一份构建好的容器镜像来作为操作系统基座,同时原子更新和回滚机制也有,可实现类似 rpm-ostree rollback 和 update 的功能,是一套演进和替代方案。 ### 快速使用 --- 目前 bootc 相对比较适合用于红帽系发行版,像...
如何在 podman 容器内使用 systemd
容器环境中缺少 systemd 有时不是很方便,为了集成度更高,podman 允许这样去启动一个容器,甚至不需要提权。 create_box_init.sh ```shell podman run -it \ --dns "8.8.8.8" \ --network host \ --hostname $1 \ --name $1 \ --user root \ $2 \ /sbin/init ``` 就像启动一个系统一样 <img src="/assets/podman-use-syst...
2026-06-05 16:37:20
Linux
容器
在 podman 运行 GUI 应用的经验总结
toolbox 和 Distrobox 不好定制?那就自己来吧。
尝试过了很多容器方案,如 toolbox、bwrap、systemd-nspawn、docker、以及 Distrobox,发现都各有优势和缺点,像 toolbox 和 distrobox 是比较好上手的一种,但他们因为过于开箱即用默认挂载宿主很多东西(如 home/user ),有时不太好定制,此时我就得从更基础的 podman 开始定制。 先上完整脚本: create_box.sh ``` #!/bin/bash xhost +local: PROXY_SOCKET="$XDG_RU...
2026-06-02 16:13:11
Linux
容器
管理 podman 容器与镜像的导入或导出
### 如何从零开始镜像的制作 想要创建一个容器,就首先得有镜像,而镜像怎么来呢,我们可以通过 `podman build` 的命令去构建基础镜像, 类似这样 ``` podman build -t myapp:base <dockerfile的路径> ``` 这里的 -t myapp:base 是镜像名和标签名,如果你知道 docker 的话,dockerfile 就不展开说了,而 podman 可以兼容 docker 的构建文件(非常强大)。 执行完后接下来在 `podman imag...
2026-05-28 17:21:00
Linux
容器
用 xdg-dbus-proxy 解决容器的文件选择器的问题
Linux 桌面有时候需要容器开 GUi,并且和系统深度集成(如:调用宿主输入法、桌面系统通知),需要给容器传这些文件(其中 -E 为环境变量,--bind 是挂载): ``` -E DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus" --bind="$XDG_RUNTIME_DIR" ``` 但有个问题,文件选择器也会调用宿主的,没办法找容器自己的文件。所以我们需要定制 `DBUS_SESSION_BUS_ADDRESS` 我使...
2026-04-14 23:54:31
Linux
问题解决,容器