如何部署和访问Ubuntu容器?
不妨先使用Multipass部署一个新容器。我们将使用以下命令部署Ubuntu Daily 20.04:
multipass launch daily:20.04
一旦容器启动,系统会为你显示该部署的随机生成的名称。如果你未留意到该名称,可以使用以下命令来查看:
multipass list
鉴于容器业已部署,使用以下命令访问其外壳:
multipass shell NAME
其中NAME是容器的随机生成的名称。
如何卸载模块并列入黑名单?
我们要做的是将不希望加载到容器中的模块列入黑名单。为此,你要先知道哪些模块在加载。想列出所有目前已加载的模块,请执行以下命令:
lsmod
你会看到目前加载到内核中的每个模块(图A)。
仔细浏览该列表,会找到你不想要加载到容器内核中的所有模块。鉴于容器通常有很特定的用途,因此可能有好多容器可以列入黑名单。
在我们将不想要启动时加载的模块实际列入黑名单之前,我们先要卸载模块。为什么?这是容器,不是虚拟机或标准操作系统,因此你无法重新启动。这就是为什么我们需要手动卸载模块。
想手动卸载运行中的模块,请执行以下命令:
sudo modprobe -r MODULENAME
其中MODULENAME是模块的名称。
如果你执行lsmod命令,应该会看到模块不再被加载到内核中。
一旦你做好了列表后,使用以下命令打开黑名单文件进行编辑:
sudo nano /etc/modprobe.d/blacklist.conf
在该文件中,你将添加希望以以下形式防止加载的所有模块:
blacklist MODULENAME
其中MODULENAME是模块的名称。举例来说,你想要防止软盘内核模块加载。为此,该条目将是:
blacklist floppy
注意:你要小心,别将对操作系统运行而言至关重要的模块或容器依赖的模块列入黑名单。因此,将模块列入黑名单之前,确保大致了解该模块的功能。