当前位置: 首页 > 科技观察

你相信吗?您可以在五分钟内设置一个Linux容器_0

时间:2023-03-13 04:56:54 科技观察

Linux容器为特定工作负载提供全新级别的灵活性和可能性。存在很多解决方案,但没有一个能够像systemd容器那样实现快速部署。给我五分钟,本文将向您展示如何使用由systemd-nspawn创建的systemd容器。  使用systemd-nspawn的最佳环境是运行CentOS7.1及更高版本的测试系统。请务必使用最新的操作系统版本以确保systemd-nspawn运行时环境是最新的。  systemd-nspawn需要使用一个目录作为容器的系统根目录。在此示例中,我使用的是/var/lib/container目录。首先使用mkdir/var/lib/container命令创建对应的目录。  在开始之前,切换到SELinux是个好主意。或者至少使用setenforce许可命令设置为许可模式。在systemd环境中更改密码更容易,本文是关于systemd-nspawn的,而不是SELinux。  接下来需要在根目录下安装最小操作系统,yum-y--releaseserver=7Server--installroot=/var/lib/container/centos7installsystemdpasswdyumredhat-releasevim-minimal命令会操作系统将安装在/var/lib/container/centos7目录中。此命令确保将所需的包复制到指定目录。请注意,示例安装的包数量对于PoC测试是绝对必需的。安装yum包后,您可以添加其他所需的包。  在此目录下安装好需要的软件包后,就可以启动容器了。***尝试时使用systemd-nspawn-D/var/lib/container/centos7-b命令是个好主意。这将启动容器并要求您输入root密码。问题是没有设置root密码。  这是因为它处于chroot模式。在chroot环境下,容器主机操作系统无法获取到root用户的密码。因此,你唯一能做的就是打开另一个shell,并杀死systemd-nspawn进程。  为了进入刚刚登录的完整环境,需要在systemd-nspawn命令中加入passwd命令。在执行此命令时禁用一些不必要的服务是个好主意。完整的命令是这样的:systemd-nspawn-D/var/lib/container/centos7passwd;systemctldisablekdumppostfixfirewalldtuned  现在可以在chroot环境下设置root密码了。然后返回到主机操作系统的命令提示符。然后,您可以使用systemdnspawn-D/var/lib/container/centos7-b命令。  您会立即看到一个随时可用的正在运行的容器。可以使用systemd-analyze命令找到启动容器需要多长时间。在容器环境中,您可以开始提供您想要的任何服务。要关闭计算机,您可以像其他任何虚拟机一样输入shutdown或poweroff命令。  在本文中,您了解了如何使用systemd-nspawn创建Linux容器,如示例所示,而无需执行任何复杂的工作。默认情况下只需要安装的操作系统的一部分。systemd-nspawn拥有成为Linux容器解决方案市场重量级玩家所需的一切。