Wie man einen Container auf Basis von Alpine Linux ausführt

DockerDockerBeginner
Jetzt üben

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

Einführung

Dieses Tutorial führt Sie durch den Prozess des Ausführens eines Docker-Containers auf Basis der Alpine Linux-Distribution. Alpine Linux ist aufgrund seiner geringen Größe und des auf Sicherheit ausgerichteten Designs eine beliebte Wahl für Docker-Container. Am Ende dieses Tutorials können Sie Ihre eigenen auf Alpine Linux basierenden Docker-Container erstellen und anpassen und so Ihren Docker-Arbeitsablauf optimieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-417725{{"Wie man einen Container auf Basis von Alpine Linux ausführt"}} docker/ls -.-> lab-417725{{"Wie man einen Container auf Basis von Alpine Linux ausführt"}} docker/create -.-> lab-417725{{"Wie man einen Container auf Basis von Alpine Linux ausführt"}} docker/pull -.-> lab-417725{{"Wie man einen Container auf Basis von Alpine Linux ausführt"}} docker/build -.-> lab-417725{{"Wie man einen Container auf Basis von Alpine Linux ausführt"}} end

Einführung in Alpine Linux

Alpine Linux ist eine leichte, quelloffene und auf Sicherheit ausgerichtete Linux-Distribution. Sie wurde so entwickelt, dass sie klein, einfach und effizient ist, was sie zu einer ausgezeichneten Wahl für containerisierte Umgebungen, eingebettete Systeme und cloudbasierte Anwendungen macht.

Eines der Hauptmerkmale von Alpine Linux ist die Verwendung der musl C-Bibliothek anstelle der weit verbreiteten glibc. Dies führt zu einer geringeren Ressourcenauslastung und kürzeren Startzeiten, was es ideal für die Ausführung in Containern macht. Darüber hinaus verwendet Alpine Linux den apk-Paketmanager, der auf Schnelligkeit und Effizienz ausgelegt ist und so zur geringen Größe der Distribution beiträgt.

Ein weiteres bemerkenswertes Merkmal von Alpine Linux ist ihr Fokus auf Sicherheit. Die Distribution enthält eine Reihe von sicherheitsorientierten Funktionen, wie die Verwendung der PaX- und grsecurity-Kernel-Patches, die helfen, vor gängigen Sicherheitslücken zu schützen.

Um die Verwendung von Alpine Linux zu demonstrieren, lassen Sie uns einen einfachen Container auf Basis dieser Distribution ausführen:

## Pull the Alpine Linux image
docker pull alpine:latest

## Run an Alpine Linux container
docker run -it alpine:latest /bin/ash

Im obigen Beispiel laden wir zunächst das neueste Alpine Linux-Image aus der Docker Hub-Registrierung herunter. Anschließend starten wir einen Container auf Basis dieses Images und verwenden die /bin/ash-Shell als Einstiegspunkt.

Sobald Sie sich im Container befinden, können Sie die Alpine Linux-Umgebung erkunden und ihre geringe Ressourcenauslastung feststellen:

/ ## uname -a
Linux 8b3d9f8a3d95 5.10.104-linuxkit #1 SMP Fri Mar 25 18:02:00 UTC 2022 x86_64 Linux
/ ## apk add --no-cache htop
(1/5) Installing ncurses-terminfo-base (6.3_p20220423-r0)
(2/5) Installing ncurses-libs (6.3_p20220423-r0)
(3/5) Installing ncurses (6.3_p20220423-r0)
(4/5) Installing util-linux (2.38-r0)
(5/5) Installing htop (3.1.1-r0)
Executing busybox-1.35.0-r19.trigger
OK: 7 MiB in 16 packages
/ ## htop

In diesem Beispiel installieren wir das Systemüberwachungstool htop mit dem apk-Paketmanager, der der Standard-Paketmanager für Alpine Linux ist. Der Installationsprozess ist schnell und effizient und zeigt die geringe Ressourcenauslastung der Distribution.

Ausführen eines Alpine Linux-Containers

Starten eines Alpine Linux-Containers

Um einen Alpine Linux-Container auszuführen, können Sie den Befehl docker run verwenden. Hier ist ein Beispiel:

docker run -it alpine:latest /bin/ash

In diesem Befehl verwenden wir die folgenden Optionen:

  • -i: Behält STDIN geöffnet, auch wenn keine Verbindung besteht.
  • -t: Allokiert eine Pseudo-TTY.
  • alpine:latest: Der Name des zu verwendenden Alpine Linux-Images.
  • /bin/ash: Der Befehl, der innerhalb des Containers ausgeführt werden soll.

Die ash-Shell ist die Standard-Shell in Alpine Linux und bietet eine ähnliche Erfahrung wie die weit verbreitete bash-Shell.

Erkunden des Alpine Linux-Containers

Sobald der Container läuft, können Sie die Alpine Linux-Umgebung erkunden. Hier sind einige Befehle, die Sie ausprobieren können:

/                                    ## uname -a
Linux 8b3d9f8a3d95 5.10.104-linuxkit #1 SMP Fri Mar 25 18:02:00 UTC 2022 x86_64 Linux
/                                    ## apk add --no-cache htop
/                                    ## htop

Diese Befehle zeigen Ihnen die Kernel-Version, installieren das Systemüberwachungstool htop und führen dann htop aus, um die laufenden Prozesse im Container zu beobachten.

Beenden des Containers

Um den Container zu beenden, können Sie den Befehl exit verwenden:

/ ## exit

Dadurch wird der Container gestoppt und Sie kehren zum Befehlseingabeaufforderungssystem des Hosts zurück.

Neustarten des Containers

Wenn Sie den Container neu starten müssen, können Sie den Befehl docker start verwenden:

docker start -i 8b3d9f8a3d95

Ersetzen Sie 8b3d9f8a3d95 durch die Container-ID oder den Namen Ihres Alpine Linux-Containers.

Indem Sie verstehen, wie Sie Alpine Linux-Container starten, erkunden und verwalten können, können Sie die Vorteile dieser leichten und sicheren Linux-Distribution in Ihren Docker-basierten Anwendungen nutzen.

Anpassen des Alpine Linux-Containers

Erstellen eines benutzerdefinierten Alpine Linux-Images

Um den Alpine Linux-Container anzupassen, können Sie ein benutzerdefiniertes Docker-Image auf Basis des Alpine Linux-Basisimages erstellen. Hier ist ein Beispiel für eine Dockerfile:

FROM alpine:latest

## Install additional packages
RUN apk add --no-cache nginx

## Copy custom configuration files
COPY nginx.conf /etc/nginx/nginx.conf

## Expose the necessary port
EXPOSE 80

## Set the default command
CMD ["nginx", "-g", "daemon off;"]

In dieser Dockerfile:

  1. Beginnen wir mit dem neuesten Alpine Linux-Basisimage.
  2. Installieren wir den Nginx-Webserver mit dem apk-Paketmanager.
  3. Kopieren wir eine benutzerdefinierte Nginx-Konfigurationsdatei in den Container.
  4. Öffnen wir Port 80 für den Nginx-Webserver.
  5. Setzen wir den Standardbefehl, um den Nginx-Webserver zu starten.

Um das benutzerdefinierte Image zu erstellen, führen Sie den folgenden Befehl aus:

docker build -t my-alpine-nginx.

Dadurch wird ein neues Docker-Image namens my-alpine-nginx auf Basis der Dockerfile im aktuellen Verzeichnis erstellt.

Ausführen des benutzerdefinierten Alpine Linux-Containers

Sobald Sie das benutzerdefinierte Image haben, können Sie einen Container auf Basis davon ausführen:

docker run -d -p 8080:80 my-alpine-nginx

In diesem Befehl:

  • -d: Führen wir den Container im detached-Modus (im Hintergrund) aus.
  • -p 8080:80: Ordnen wir Port 8080 auf dem Host Port 80 im Container zu.
  • my-alpine-nginx: Der Name des von uns erstellten benutzerdefinierten Alpine Linux-Images.

Jetzt können Sie den im Container laufenden Nginx-Webserver erreichen, indem Sie in Ihrem Webbrowser http://localhost:8080 besuchen.

Durch die Anpassung des Alpine Linux-Containers können Sie ihn an Ihre spezifischen Anforderungen anpassen, wie z. B. die Installation zusätzlicher Software, das Kopieren von Konfigurationsdateien oder das Öffnen verschiedener Ports. Diese Flexibilität macht Alpine Linux zu einer ausgezeichneten Wahl für das Erstellen effizienter und leichter Docker-basierter Anwendungen.

Zusammenfassung

In diesem umfassenden Docker-Tutorial haben Sie gelernt, wie Sie einen Container auf Basis der leichten und sicheren Alpine Linux-Distribution ausführen können. Sie haben den Prozess des Erstellens eines Alpine Linux-Containers untersucht und ihn auch an Ihre spezifischen Anforderungen angepasst. Indem Sie die Macht von Docker und die Vorteile von Alpine Linux nutzen, können Sie Ihre Entwicklungs- und Bereitstellungsprozesse optimieren und letztendlich die Effizienz Ihrer Docker-basierten Anwendungen verbessern.