Installation einer CentOS 7 Linux VM in VirtualBox

CompTIABeginner
Jetzt üben

Einführung

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

Der Prozess beginnt mit dem Abrufen des offiziellen CentOS 7-Images aus der Docker Hub-Registry. Anschließend erstellen und konfigurieren Sie einen neuen Container auf Basis dieses Images. Schließlich passen Sie das laufende System an, indem Sie die GNOME-Desktop-Umgebung installieren und eine grafische Anmeldung aktivieren, was zu einer voll einsatzfähigen CentOS 7-Instanz mit grafischer 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 beziehen. Die ursprüngliche Übung sieht die Verwendung von VirtualBox zur Installation einer vollständigen virtuellen Maschine vor. In dieser cloudbasierten Lab-Umgebung ist es jedoch effizienter und moderner, Docker-Container zu verwenden. Docker ermöglicht es uns, isolierte Anwendungen und Betriebssysteme in leichtgewichtigen Umgebungen, sogenannten Containern, auszuführen, die wesentlich schneller starten und weniger Ressourcen verbrauchen als herkömmliche virtuelle Maschinen.

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

Zuerst laden wir das CentOS 7-Image herunter. Der Befehl docker pull ruft ein Image aus einer Registry ab. Wir geben centos als Image-Namen und 7 als Tag an, was der Version CentOS 7 entspricht.

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

docker pull centos:7

Sie sehen eine Ausgabe, die den Fortschritt des Downloads anzeigt. Docker lädt das Image in Schichten (Layers) herunter. Sobald der Vorgang abgeschlossen ist, sieht die Ausgabe in etwa so 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. Mit dem Befehl docker images können wir alle lokal vorhandenen Docker-Images auflisten.

docker images

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

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

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

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

In diesem Schritt erstellen und konfigurieren wir unsere CentOS 7-Umgebung. Anstelle einer traditionellen virtuellen Maschine verwenden wir das heruntergeladene centos:7 Docker-Image, um einen Container zu starten. Ein Container ist eine laufende Instanz eines Images. Dieser wird für den Rest dieses Labs als unsere "virtuelle Maschine" dienen.

Wir verwenden den Befehl docker run, um den Container zu erstellen und zu starten. Dabei nutzen wir einige wichtige Optionen:

  • -it: Diese Kombination von Flags verbindet unser Terminal mit dem Terminal des Containers, sodass wir Befehle interaktiv ausführen können.
  • --name centos_workstation: Dies weist unserem Container den einprägsamen Namen centos_workstation zu. Das erleichtert die spätere Verwaltung (Starten, Stoppen, Entfernen).
  • centos:7: Dies spezifiziert das Image, das wir ausführen möchten.
  • /bin/bash: Dies ist der Befehl, der beim Start im Container ausgeführt wird. Er startet die Bash-Shell und stellt uns eine Eingabeaufforderung zur Verfügung.

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

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

Nach der Ausführung des Befehls werden Sie bemerken, 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 Folge aus Buchstaben und Zahlen (z. B. a1b2c3d4e5f6) ist die eindeutige ID Ihres Containers. Sie befinden sich nicht mehr in der Shell der LabEx-Hostumgebung.

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

useradd student1

Als Nächstes legen wir ein Passwort für student1 fest. Der Einfachheit halber verwenden wir student1 als Passwort. Der Befehl passwd wird Sie auffordern, das neue Passwort einzugeben und zu bestätigen.

passwd student1

Geben Sie bei der Aufforderung student1 ein, drücken Sie die Eingabetaste, geben Sie dann erneut student1 ein und bestätigen Sie wieder mit der Eingabetaste.

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 Hauptterminal von LabEx zurückkehren. Geben Sie exit ein und drücken Sie die Eingabetaste, um die Shell des Containers zu verlassen.

exit

Dies stoppt den Container und bringt Sie zurück zur Eingabeaufforderung im Verzeichnis ~/project. Der Container centos_workstation existiert nun und kann in den folgenden Schritten wieder 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 sieht einen detaillierten Installationsprozess mit benutzerdefinierter Festplattenpartitionierung vor. In unserer Docker-basierten Umgebung unterscheidet sich dieser Prozess. Die "Installation" ist bereits abgeschlossen, da wir ein vorgefertigtes Image verwenden. Das Konzept der manuellen Erstellung von Partitionen wie /, /home und /var lässt sich nicht auf einen Standard-Docker-Container anwenden, da dieser das Dateisystem des Hosts in Schichten nutzt.

Stattdessen konzentrieren wir uns auf die Erstkonfiguration des laufenden Containers, was eine typische Aufgabe nach der Bereitstellung eines neuen Systems ist. Wir werden den Container starten, seine Softwarepakete aktualisieren und sudo installieren, damit unser Benutzer ohne Root-Rechte administrative Aufgaben ausführen kann.

Zuerst starten wir den im vorherigen Schritt erstellten Container. 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 damit den Start. Verbinden Sie nun Ihr Terminal mit dem laufenden Container mittels docker attach:

docker attach centos_workstation

Ihre Terminal-Eingabeaufforderung wechselt wieder zur Root-Shell des Containers:

[root@a1b2c3d4e5f6 /]#

Nun konfigurieren wir die notwendigen Dienste. Zuerst müssen wir die Repository-Konfiguration von CentOS 7 anpassen, da das System sein Lebensende (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 spartanisch. Wir beginnen damit, alle installierten Pakete mit yum, dem Paketmanager von CentOS, auf die neuesten Versionen zu aktualisieren. Das Flag -y beantwortet alle Bestätigungsfragen automatisch 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 erlaubt es autorisierten Benutzern, Befehle mit den Rechten eines anderen Benutzers (normalerweise root) auszuführen.

yum install -y sudo

Nach Abschluss der Installation müssen wir dem zuvor erstellten Benutzer student1 sudo-Rechte gewähren. In CentOS geschieht dies normalerweise, indem man den Benutzer der Gruppe wheel hinzufügt.

usermod -aG wheel student1
  • usermod ist ein Befehl zum Ändern eines Benutzerkontos.
  • Die Flags -aG weisen den Befehl an, den Benutzer einer ergänzenden Gruppe (append to Group) hinzuzufügen, in diesem Fall der Gruppe wheel.

Um zu überprüfen, ob student1 nun über sudo-Zugriff verfügt, wechseln wir zu diesem Benutzer und testen es.

su - student1

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

sudo whoami

Die erwartete Ausgabe ist:

root

Hervorragend! 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 Strg+P gefolgt von Strg+Q. Dies trennt Ihr Terminal vom Container und bringt Sie zurück zur LabEx-Eingabeaufforderung, 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 – die Installation eines grafischen Desktops – an. In einer Container-Umgebung, wie wir sie hier nutzen, ist die Installation einer vollständigen grafischen Benutzeroberfläche (GUI) wie GNOME unüblich. Container sind darauf ausgelegt, leichtgewichtig zu sein und werden in der Regel über die Kommandozeile verwaltet.

Stattdessen üben wir dieselbe Fertigkeit – die Installation von Gruppen zusammengehöriger Softwarepakete –, indem wir einen gängigen Satz an Entwicklungswerkzeugen installieren. Außerdem installieren wir einen textbasierten Webbrowser, um das ursprüngliche Ziel eines Browser-Zugriffs in unserer neuen Umgebung zu erfüllen.

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.

Falls 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 im Container angemeldet sind.

Nun nutzen wir yum, um die Paketgruppe "Development Tools" zu installieren. Diese Gruppe enthält essenzielle Werkzeuge zum Kompilieren von Software aus dem Quellcode, wie gcc, make und git. Da student1 über sudo-Rechte verfügt, können wir diese Installation durchführen. Das Flag -y bestätigt alle Abfragen automatisch.

sudo yum groupinstall -y "Development Tools"

Diese Installation lädt viele Pakete herunter und kann einige Minuten dauern. Sie werden eine umfangreiche Ausgabe sehen, während die Pakete installiert werden.

Um unsere Einrichtung zu vervollständigen, installieren wir als Nächstes lynx, einen leichtgewichtigen, textbasierten Webbrowser. Dies ist ein nützliches Werkzeug, um Webseiten schnell zu prüfen oder Dateien direkt über die Kommandozeile herunterzuladen.

sudo yum install -y lynx

Die Installation von lynx sollte sehr schnell gehen. Testen wir unseren neuen Browser, indem wir eine einfache Webseite aufrufen.

lynx example.com

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

Sie haben Ihre CentOS-Umgebung nun erfolgreich mit wichtigen Entwicklungswerkzeugen und einem Kommandozeilen-Browser konfiguriert. Um dieses Lab zu beenden, 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 Hauptterminal von LabEx zurückzukehren.

exit
exit

Zusammenfassung

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

Diese Ersteinrichtung bildete die Grundlage für die folgenden Schritte, in denen Sie einen Container aus diesem Image erstellt und ausgeführt haben. Das Gesamtziel bestand darin, eine vollständige CentOS 7-Konfiguration durchzuführen, einschließlich benutzerdefinierter Anpassungen und der Installation wichtiger Werkzeuge, alles innerhalb des effizienten und ressourcenschonenden Docker-Containers.