执行带自定义分区的 CentOS 7 安装
在此步骤中,我们将配置新的 CentOS 7 环境。原始实验涉及一个详细的安装过程,包括自定义磁盘分区。在我们的基于 Docker 的环境中,这个过程有所不同。由于我们使用的是预构建的镜像,因此“安装”已经完成。创建手动分区(如 /
、/home
和 /var
)的概念不适用于标准的 Docker 容器,因为它以分层方式使用宿主机的(host's)文件系统。
相反,我们的重点将放在运行中容器的初始配置上,这是部署新系统后的一项常见任务。我们将启动容器,更新其软件软件包,并安装 sudo
以允许我们的非 root 用户执行管理任务。
首先,让我们启动在上一步中创建的容器。它目前是停止状态。使用 docker start
命令:
docker start centos_workstation
此命令将输出容器的名称 centos_workstation
,确认它已启动。现在,使用 docker attach
将你的终端连接到正在运行的容器:
docker attach centos_workstation
你的终端提示符将更改为容器的 root shell,与之前类似:
[root@a1b2c3d4e5f6 /]#
现在配置必要的服务并创建我们将要排查的问题。首先,我们需要修复 CentOS 7 的仓库配置,因为它已达到生命周期终点(end-of-life):
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/#baseurl/baseurl/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's|http://mirror.centos.org|http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
最小化的 CentOS 7 镜像非常基础。让我们首先使用 CentOS 的包管理器 yum
更新所有已安装的软件包到最新版本。-y
标志会自动回答“是”来确认任何提示。
yum update -y
此过程可能需要几分钟才能完成。完成后,我们将安装 sudo
软件包,该软件包未包含在最小化镜像中。sudo
允许授权用户以另一个用户(通常是 root 用户)的身份执行命令。
yum install -y sudo
安装完成后,我们需要授予我们之前创建的 student1
用户 sudo
权限。在 CentOS 中,这通常通过将用户添加到 wheel
组来完成。
usermod -aG wheel student1
usermod
是一个用于修改用户账户的命令。
-aG
标志告诉命令将用户 append(追加)到一个补充 Group(组),在本例中是 wheel
。
为了验证 student1
现在是否具有 sudo
访问权限,让我们切换到该用户并进行测试。
su - student1
你的提示符将变为 [student1@a1b2c3d4e5f6 ~]$
。现在,尝试使用 sudo
运行 whoami
命令。它应该报告你为 root
。
sudo whoami
预期的输出是:
root
太棒了!我们的容器现在已配置为更新的系统和一个具有 sudo
权限的用户。要继续下一步,我们需要退出容器,但让它在后台运行。不要输入 exit
。而是按下按键序列 Ctrl+P
然后是 Ctrl+Q
。这将把你的终端与容器分离,使你返回到 LabEx 提示符,同时容器继续运行。