8.11. 使用 Toolbx 检查 bootc 容器
在系统上安装软件存在一定的风险:它可以改变系统的行为,并在不再需要后留下不需要的文件和目录。您可以通过将您首选的开发和调试工具、编辑器和软件开发工具包(SDK)安装到 RHEL bootc 中包含的 Toolbx 实用程序中来防止这些风险,无需影响基础操作系统。您可以使用诸如 less、lsof、rsync、ssh、sudo 和 unzip 等命令在主机系统上执行更改。
Toolbx 工具执行以下操作:
-
将
registry.access.redhat.com/ubi9/toolbox:latest镜像拉取到本地系统 - 从镜像启动容器
- 在容器内运行 shell,您可以通过它访问主机系统
Toolbx 可以运行根容器或无根容器,具体取决于创建 Toolbx 容器的用户的权限。在主机系统上需要 root 权限的工具也应在 root 容器中运行。
默认容器名称是 rhel-toolbox。要检查 bootc 容器,请按照以下步骤执行:
流程
使用
toolbox create命令启动 Toolbx 容器,并使用toolbox enter命令输入容器。以无根用户身份:
$ toolbox create <mytoolbox>以 root 用户身份:
$ sudo toolbox create <mytoolbox> Created container: <mytoolbox> Enter with: toolbox enter验证您是否拉取了正确的镜像:
[user@toolbox ~]$ toolbox list IMAGE ID IMAGE NAME CREATED fe0ae375f149 registry.access.redhat.com/ubi{ProductVersion}/toolbox 5 weeks ago CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 5245b924c2cb <mytoolbox> 7 minutes ago created registry.access.redhat.com/ubi{ProductVersion}/toolbox:8.9-6进入 Toolbx 容器:
[user@toolbox ~]$ toolbox enter <mytoolbox>- 可选:检查是否拉取了正确的镜像
在
<mytoolbox>容器中输入命令,并显示容器和镜像的名称:⬢ [user@toolbox ~]$ cat /run/.containerenv engine="podman-4.8.2" name="<mytoolbox>" id="5245b924c2cb..." image="registry.access.redhat.com/ubi{ProductVersion}/toolbox" imageid="fe0ae375f14919cbc0596142e3aff22a70973a36e5a165c75a86ea7ec5d8d65c"
使用 Toolbx 安装开发工具:
安装您选择的工具,例如 Emacs 文本编辑器、GCC 编译器和 GNU 调试器 (GDB):
⬢[user@toolbox ~]$ sudo dnf install emacs gcc gdb可选:验证是否安装了工具:
⬢[user@toolbox ~]$ dnf repoquery --info --installed <package_name>安装后,您可以继续以无根用户身份使用这些工具。
使用 Toolbx 对主机系统进行故障排除,而无需在主机系统上安装它们。
安装
systemd套件,以便能够运行journalctl命令:⬢[root@toolbox ~]# dnf install systemd显示主机上运行的所有进程的日志消息:
⬢[root@toolbox ~]# j journalctl --boot -0 Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: microcode: updated ear> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: Linux version 6.6.8-10> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: Command line: BOOT_IMA> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: x86/split lock detecti> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: BIOS-provided physical>显示内核的日志消息:
⬢[root@toolbox ~]# journalctl --boot -0 --dmesg Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: microcode: updated ear> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: Linux version 6.6.8-10> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: Command line: BOOT_IMA> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: x86/split lock detecti> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: BIOS-provided physical> Jan 02 09:06:48 user-thinkpadp1gen4i.brq.csb kernel: BIOS-e820: [mem 0x0000>安装
nmap网络扫描工具:⬢[root@toolbox ~]# dnf install nmap扫描网络中的 IP 地址和端口:
⬢[root@toolbox ~]# nmap -sS scanme.nmap.org Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-02 10:39 CET Stats: 0:01:01 elapsed; 0 hosts completed (0 up), 256 undergoing Ping Scan Ping Scan Timing: About 29.79% done; ETC: 10:43 (0:02:24 remaining) Nmap done: 256 IP addresses (0 hosts up) scanned in 206.45 seconds-
-sS选项执行 TCP SYN 扫描。大多数 Nmap 的扫描类型仅对特权用户提供,因为它们发送和接收原始数据包,这在 UNIX 系统上需要 root 访问权限。
-
停止 Toolbx bootc 容器。
离开容器,并返回到主机:
⬢ [user@toolbox ~]$ exit停止 toolbox 容器:
⬢ [user@toolbox ~]$ podman stop <mytoolbox>可选:删除 toolbox 容器:
⬢ [user@toolbox ~]$ toolbox rm <mytoolbox>或者,您也可以使用
podman rm命令删除 bootc 容器。