CentOS 7 Linux VM in VirtualBox installieren

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Labor lernen Sie, wie Sie eine CentOS 7-Umgebung einrichten und konfigurieren. Während ein traditioneller Ansatz eine vollständige virtuelle Maschine in VirtualBox verwenden würde, nutzt dieses Labor eine modernere und effizientere Methode durch den Einsatz von Docker-Containern. Sie arbeiten in einer Cloud-basierten Umgebung, um einen leichten, isolierten CentOS 7-Container bereitzustellen, der ein funktionsfähiges Linux-System ohne den Overhead einer herkömmlichen VM bietet.

Der Prozess beginnt mit dem Herunterladen des offiziellen CentOS 7-Images aus dem Docker Hub-Repository. Anschließend erstellen und konfigurieren Sie einen neuen Container basierend auf diesem Image. Abschließend passen Sie das laufende System an, indem Sie die GNOME-Desktop-Umgebung installieren und eine grafische Anmeldung aktivieren, was zu einer voll funktionsfähigen CentOS 7-Instanz mit einer grafischen Benutzeroberfläche führt.

Herunterladen und Installieren von VirtualBox und der CentOS 7 ISO

In diesem Schritt bereiten wir unsere Umgebung vor, indem wir ein CentOS 7-System beschaffen. Die ursprüngliche Übung verwendet VirtualBox zur Installation einer vollständigen virtuellen Maschine. In dieser Cloud-basierten Laborumgebung ist jedoch ein effizienterer und modernerer Ansatz die Verwendung von Docker-Containern. Docker ermöglicht es uns, isolierte Anwendungen und Betriebssysteme in leichten Umgebungen namens Container auszuführen, die viel schneller starten und weniger Ressourcen verbrauchen als herkömmliche virtuelle Maschinen.

Wir beginnen damit, das offizielle CentOS 7-Image von Docker Hub herunterzuladen (oder im Docker-Jargon "zu pullen"), einem öffentlichen Repository für Container-Images.

Zuerst ziehen wir das CentOS 7-Image. Der Befehl docker pull holt ein Image aus einem Repository. Wir geben centos als Image-Namen und 7 als Tag an, was der CentOS 7-Version entspricht.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

docker pull centos:7

Sie sehen eine Ausgabe, die den Download-Fortschritt anzeigt. Docker lädt das Image in Schichten herunter. Sobald der Vorgang abgeschlossen ist, sieht die Ausgabe ähnlich wie folgt aus:

7: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:7
docker.io/library/centos:7

Nachdem das Image heruntergeladen wurde, überprüfen wir, ob es auf unserem lokalen System verfügbar ist. Wir können alle lokal verfügbaren Docker-Images mit dem Befehl docker images auflisten.

docker images

Die Ausgabe sollte einen Eintrag für centos mit dem Tag 7 enthalten. Die IMAGE ID und das CREATED-Datum können auf Ihrem System abweichen.

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       7         eeb6ee3f44bd   2 years ago    204MB

Nachdem das CentOS 7-Image erfolgreich heruntergeladen wurde, sind wir bereit, im nächsten Schritt einen Container daraus zu erstellen und auszuführen.

Erstellen und Konfigurieren einer neuen virtuellen Maschine für CentOS 7

In diesem Schritt erstellen und konfigurieren wir unsere CentOS 7-Umgebung. Anstelle einer herkömmlichen virtuellen Maschine verwenden wir das zuvor heruntergeladene Docker-Image centos:7, um einen Container zu starten. Ein Container ist eine laufende Instanz eines Images. Dies dient als unsere "virtuelle Maschine" für den Rest dieses Labors.

Wir verwenden den Befehl docker run, um den Container zu erstellen und zu starten. Wir werden einige wichtige Optionen einbeziehen:

  • -it: Diese Kombination von Flags verbindet unser Terminal mit dem Terminal des Containers und ermöglicht uns die interaktive Ausführung von Befehlen.
  • --name centos_workstation: Dies weist unserem Container einen einprägsamen Namen, centos_workstation, zu. Dies erleichtert die spätere Verwaltung (Starten, Stoppen, Entfernen).
  • centos:7: Dies gibt das Image an, das wir ausführen möchten.
  • /bin/bash: Dies ist der Befehl, der innerhalb des Containers ausgeführt wird, wenn er startet. Er startet die Bash-Shell und gibt uns eine Eingabeaufforderung.

Führen Sie nun den folgenden Befehl aus, um Ihren CentOS-Container zu starten:

docker run -it --name centos_workstation centos:7 /bin/bash

Nachdem Sie den Befehl ausgeführt haben, werden Sie feststellen, dass sich Ihre Terminal-Eingabeaufforderung ändert. Sie wird etwa so aussehen:

[root@a1b2c3d4e5f6 /]#

Diese neue Eingabeaufforderung zeigt an, dass Sie sich nun als root-Benutzer innerhalb des CentOS 7-Containers befinden. Die Zeichenkette aus Buchstaben und Zahlen (z. B. a1b2c3d4e5f6) ist die eindeutige ID Ihres Containers. Sie befinden sich nicht mehr in der Shell der LabEx-Host-Umgebung.

Gemäß dem ursprünglichen Plan der Übung erstellen wir nun einen Nicht-Root-Benutzer. Wir erstellen einen Benutzer namens student1. Verwenden Sie dazu den Befehl useradd:

useradd student1

Legen Sie als Nächstes ein Passwort für student1 fest. Wir verwenden student1 als Passwort, um die Dinge einfach zu halten. Der Befehl passwd fordert Sie auf, das neue Passwort einzugeben und erneut einzugeben.

passwd student1

Geben Sie bei Aufforderung student1 ein, drücken Sie Enter, geben Sie dann erneut student1 ein und drücken Sie Enter.

Changing password for user student1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Um diesen Schritt abzuschließen, müssen wir zu unserem Haupt-LabEx-Terminal zurückkehren. Geben Sie exit ein und drücken Sie Enter, um die Shell des Containers zu verlassen.

exit

Dadurch wird der Container gestoppt und Sie kehren zur Eingabeaufforderung des Verzeichnisses ~/project zurück. Der Container centos_workstation existiert nun und kann in zukünftigen Schritten erneut gestartet werden.

Durchführung der CentOS 7-Installation mit benutzerdefinierten Partitionen

In diesem Schritt konfigurieren wir unsere neue CentOS 7-Umgebung. Die ursprüngliche Übung beinhaltet einen detaillierten Installationsprozess mit benutzerdefinierter Festplattenpartitionierung. In unserer Docker-basierten Umgebung ist dieser Prozess anders. Die "Installation" ist bereits abgeschlossen, da wir ein vorgefertigtes Image verwenden. Das Konzept der Erstellung manueller Partitionen wie /, /home und /var gilt nicht für einen Standard-Docker-Container, da dieser das Dateisystem des Hosts auf geschichtete Weise nutzt.

Stattdessen konzentrieren wir uns auf die anfängliche Konfiguration des laufenden Containers, was eine gängige Aufgabe nach der Bereitstellung eines neuen Systems ist. Wir starten den Container, aktualisieren seine Softwarepakete und installieren sudo, damit unser Nicht-Root-Benutzer administrative Aufgaben ausführen kann.

Zuerst starten wir den Container, den wir im vorherigen Schritt erstellt haben. Er ist derzeit gestoppt. Verwenden Sie den Befehl docker start:

docker start centos_workstation

Dieser Befehl gibt den Namen des Containers, centos_workstation, aus und bestätigt, dass er gestartet wurde. Hängen Sie nun Ihr Terminal mit docker attach an den laufenden Container an:

docker attach centos_workstation

Ihre Terminal-Eingabeaufforderung ändert sich zur Root-Shell des Containers, ähnlich wie zuvor:

[root@a1b2c3d4e5f6 /]#

Konfigurieren Sie nun mit den notwendigen Diensten und erstellen Sie die Probleme, die wir beheben werden. Zuerst müssen wir die Repository-Konfiguration von CentOS 7 korrigieren, da diese das End-of-Life erreicht hat:

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

Das minimale CentOS 7-Image ist sehr einfach. Beginnen wir damit, alle installierten Pakete mit yum, dem Paketmanager für CentOS, auf ihre neuesten Versionen zu aktualisieren. Das Flag -y beantwortet automatisch alle Bestätigungsaufforderungen mit "ja".

yum update -y

Dieser Vorgang kann einige Minuten dauern. Sobald er abgeschlossen ist, installieren wir das Paket sudo, das im minimalen Image nicht enthalten ist. sudo ermöglicht es berechtigten Benutzern, Befehle als ein anderer Benutzer, typischerweise der Root-Benutzer, auszuführen.

yum install -y sudo

Nach Abschluss der Installation müssen wir dem zuvor erstellten Benutzer student1 sudo-Berechtigungen erteilen. In CentOS geschieht dies normalerweise, indem der Benutzer zur Gruppe wheel hinzugefügt wird.

usermod -aG wheel student1
  • usermod ist ein Befehl zur Änderung eines Benutzerkontos.
  • Die Flags -aG weisen den Befehl an, den Benutzer an eine zusätzliche Gruppe (append to Group) anzuhängen, in diesem Fall wheel.

Um zu überprüfen, ob student1 nun sudo-Zugriff hat, wechseln wir zu diesem Benutzer und testen dies.

su - student1

Ihre Eingabeaufforderung ändert sich zu [student1@a1b2c3d4e5f6 ~]$. Versuchen Sie nun, den Befehl whoami mit sudo auszuführen. Er sollte melden, dass Sie root sind.

sudo whoami

Die erwartete Ausgabe ist:

root

Großartig! Unser Container ist nun mit einem aktualisierten System und einem Benutzer mit sudo-Rechten konfiguriert. Um mit dem nächsten Schritt fortzufahren, müssen wir den Container verlassen, ihn aber im Hintergrund weiterlaufen lassen. Geben Sie nicht exit ein. Drücken Sie stattdessen die Tastenkombination Ctrl+P gefolgt von Ctrl+Q. Dies trennt Ihr Terminal vom Container und gibt Sie zur LabEx-Eingabeaufforderung zurück, während der Container weiterläuft.

Installation des GNOME Desktops und Aktivierung der grafischen Anmeldung

In diesem Schritt passen wir das Ziel der ursprünglichen Übung an, einen grafischen Desktop zu installieren. In einer Containerumgebung wie der von uns verwendeten ist die Installation einer vollständigen grafischen Benutzeroberfläche (GUI) wie GNOME keine Standardpraxis. Container sind darauf ausgelegt, leichtgewichtig zu sein und werden typischerweise über die Befehlszeile verwaltet.

Stattdessen üben wir dieselbe Fähigkeit – die Installation von Gruppen verwandter Softwarepakete –, indem wir eine gängige Sammlung von Befehlszeilentools installieren. Wir installieren auch einen textbasierten Webbrowser, um das ursprüngliche Ziel zu erfüllen, Browserzugriff in unserer neuen Umgebung zu haben.

Zuerst müssen wir unseren laufenden Container betreten. Im vorherigen Schritt haben wir den Container centos_workstation im Hintergrund laufen lassen. Wir verwenden den Befehl docker exec, um eine neue Shell darin als Benutzer student1 zu öffnen.

Wenn Sie sich bereits im Container befinden, können Sie diesen Befehl überspringen.

docker exec -it centos_workstation su - student1

Ihre Eingabeaufforderung ändert sich zu [student1@a1b2c3d4e5f6 ~]$, was anzeigt, dass Sie nun als student1 innerhalb des Containers angemeldet sind.

Nun verwenden wir yum, um die Paketgruppe "Development Tools" zu installieren. Diese Gruppe enthält wesentliche Werkzeuge für die Kompilierung von Software aus dem Quellcode, wie z. B. gcc, make und git. Da student1 über sudo-Berechtigungen verfügt, können wir diese Installation durchführen. Das Flag -y beantwortet alle Aufforderungen automatisch mit "ja".

sudo yum groupinstall -y "Development Tools"

Diese Installation lädt viele Pakete herunter und installiert sie und kann mehrere Minuten dauern. Sie werden viele Ausgaben sehen, während die Pakete installiert werden.

Als Nächstes installieren wir lynx, einen leichtgewichtigen, textbasierten Webbrowser, um unsere Einrichtung abzuschließen. Dies ist ein nützliches Werkzeug, um schnell Websites zu überprüfen oder Dateien direkt von der Befehlszeile herunterzuladen.

sudo yum install -y lynx

Die Installation von lynx sollte sehr schnell erfolgen. Testen wir unseren neuen Browser, indem wir zu einer einfachen Website navigieren.

lynx example.com

Sie sehen den Textinhalt der example.com-Homepage, der in Ihrem Terminal gerendert wird. Sie können die Pfeiltasten zur Navigation verwenden. Um lynx zu beenden, drücken Sie die Taste q auf Ihrer Tastatur. Wenn Sie aufgefordert werden, zu bestätigen (Are you sure you want to quit? [Y/N]), drücken Sie y.

Sie haben nun Ihre CentOS-Umgebung erfolgreich mit wichtigen Entwicklungswerkzeugen und einem Browser für die Befehlszeile konfiguriert. Um dieses Labor abzuschließen, verlassen Sie den Container.

Geben Sie exit ein, um sich vom Benutzer student1 abzumelden, und geben Sie dann erneut exit ein, um die Shell des Containers zu verlassen und zu Ihrem Haupt-LabEx-Terminal zurückzukehren.

exit
exit

Zusammenfassung

In diesem Labor haben Sie gelernt, wie Sie eine CentOS 7-Umgebung mit einem modernen, containerbasierten Ansatz mit Docker einrichten. Sie haben damit begonnen, das offizielle CentOS 7-Image aus dem öffentlichen Docker Hub-Registry mit dem Befehl docker pull centos:7 herunterzuladen. Anschließend haben Sie mit dem Befehl docker images alle lokalen Docker-Images aufgelistet und überprüft, ob das Image erfolgreich heruntergeladen und auf Ihrem lokalen System verfügbar war.

Diese anfängliche Einrichtung bildet die Grundlage für die nachfolgenden Schritte, in denen Sie einen Container aus diesem Image erstellen und ausführen werden. Das Gesamtziel ist die Durchführung einer vollständigen CentOS 7-Installation, einschließlich benutzerdefinierter Konfigurationen und der Installation der GNOME-Grafikdesktop-Umgebung, alles innerhalb des leichtgewichtigen und effizienten Docker-Containers.