Docker unter Ubuntu verwenden: Vollständiger Leitfaden zur Installation, zu Images, Dockerfile und Optimierung

目次

1. Einführung

Was ist Docker?

Docker ist eine Plattform, die containerbasierte Virtualisierungstechnologie nutzt, um Anwendungen effizient zu entwickeln, zu verteilen und auszuführen. Im Gegensatz zu traditionellen virtuellen Maschinen (VMs) teilen sich Container den Kernel des Host‑OS, was einen schnelleren Start und geringeren Ressourcenverbrauch ermöglicht.

Vorteile der Verwendung von Docker auf Ubuntu

Ubuntu ist eine der Linux‑Distributionen mit hoher Kompatibilität zu Docker. Die wichtigsten Gründe sind:

  • Offizieller Support : Docker unterstützt Ubuntu offiziell, wodurch die Installation über das offizielle Repository einfach ist.
  • Stabiles Paketmanagement : Der APT‑Paketmanager von Ubuntu macht die Versionsverwaltung unkompliziert.
  • Umfangreicher Community‑Support : Ubuntu hat eine große globale Nutzerbasis, was die Fehlersuche erleichtert, wenn Probleme auftreten.

Was Sie in diesem Artikel lernen werden

Dieser Leitfaden erklärt die folgenden Themen Schritt für Schritt:

  1. Wie man Docker auf Ubuntu installiert
  2. Grundlegende Operationen für Docker‑Images
  3. Erstellung benutzerdefinierter Images mit Dockerfile
  4. Einrichten der japanischen Locale in einem Ubuntu‑Container
  5. Optimierung und Minimierung von Docker‑Images
  6. Entwicklung von Anwendungen in Ubuntu‑Containern
  7. Häufige Fehler und Fehlersuche

Der Inhalt ist sowohl für Anfänger als auch für Fortgeschrittene nützlich, also können Sie ihn jederzeit als Referenz verwenden.

2. Docker auf Ubuntu installieren

Installation von Docker über das offizielle Repository

Unter Ubuntu können Sie Docker einfach über das offizielle Repository installieren. Folgen Sie den untenstehenden Schritten, um Ihre Umgebung einzurichten.

1. Vorhandene Docker-Pakete entfernen

Ubuntu kann ein Paket namens docker.io enthalten, das eine ältere Version sein könnte. Entfernen Sie es, bevor Sie die neueste Docker‑Version installieren.

sudo apt remove docker docker-engine docker.io containerd runc

2. Erforderliche Pakete installieren

Installieren Sie Abhängigkeitspakete vor der Installation.

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Offizielles Docker-Repository hinzufügen

Fügen Sie den offiziellen GPG‑Schlüssel von Docker hinzu und konfigurieren Sie das Repository.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Docker installieren

Nach dem Hinzufügen des Repositorys Docker installieren.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. Installation überprüfen

Überprüfen Sie, ob Docker korrekt installiert ist, indem Sie die Versionsinformationen anzeigen.

docker --version

Ersteinrichtung nach der Installation

1. Docker-Dienst starten und aktivieren

Starten Sie den Docker‑Dienst und aktivieren Sie den automatischen Start beim Booten.

sudo systemctl start docker
sudo systemctl enable docker

2. Nicht‑Root‑Benutzern erlauben, Docker auszuführen

Standardmäßig kann nur root Docker ausführen. Erlauben Sie regulären Benutzern, Docker‑Befehle auszuführen.

sudo usermod -aG docker $USER

Melden Sie sich ab und wieder an, um die Änderungen zu übernehmen.

3. Docker‑Betrieb testen

Führen Sie den hello-world‑Container mit einem regulären Benutzerkonto aus.

docker run hello-world

Wenn die Ausgabe „Hello from Docker!“ enthält, war die Installation erfolgreich.

3. Grundlegende Operationen von Docker-Images

Was ist ein Docker-Image?

Ein Docker-Image dient als Vorlage zur Erstellung von Containern. Durch die Verwendung eines Ubuntu‑basierten Docker-Images können Sie schnell eine Ubuntu-Umgebung starten.

Ubuntu-Images von Docker Hub herunterladen

Docker Hub bietet zahlreiche offizielle Docker-Images. Um ein Ubuntu-Image herunterzuladen, führen Sie aus:

docker pull ubuntu

Container starten und stoppen

Verwenden Sie das heruntergeladene Ubuntu-Image, um einen Container zu starten:

docker run -it ubuntu bash

Dies öffnet eine Shell im Ubuntu‑Container, sodass Sie darin arbeiten können.

Container auflisten

Laufende Container anzeigen:

docker ps

Alle Container anzeigen, einschließlich gestoppter:

docker ps -a

Stoppen und Entfernen von Containern

Einen laufenden Container stoppen:

docker stop [container ID or name]

Einen nicht mehr benötigten Container entfernen:

docker rm [container ID or name]

Docker‑Images verwalten

Heruntergeladene Docker‑Images auflisten:

docker images

Ein Image entfernen:

docker rmi [image ID]

4. Erstellen benutzerdefinierter Images mit Dockerfile

Was ist ein Dockerfile?

Ein Dockerfile ist eine Konfigurationsdatei, die zum Erstellen von Docker‑Images verwendet wird. Basierend auf den im Dockerfile geschriebenen Anweisungen können Sie angepasste Docker‑Images erstellen. Dies ermöglicht es Ihnen, Entwicklungsumgebungen zu vereinheitlichen oder Images zu erstellen, die die benötigten Pakete enthalten.

Grundsyntax eines Dockerfiles

Ein Dockerfile enthält typischerweise die folgenden Befehle:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefault command executed when the container starts
ENTRYPOINTDefines the entry point of the container

Erstellen eines benutzerdefinierten, auf Ubuntu basierenden Images

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes, auf Ubuntu basierendes Docker‑Image zu erstellen.

1. Arbeitsverzeichnis erstellen

Zuerst erstellen Sie ein neues Projektverzeichnis und wechseln hinein.

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Dockerfile erstellen

Erstellen Sie eine Dockerfile im Verzeichnis und schreiben Sie den folgenden Inhalt:

# Base Ubuntu official image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package list and install basic tools
RUN apt update && apt install -y curl vim git

# Set working directory
WORKDIR /workspace

# Default command when the container starts
CMD ["bash"]

3. Docker‑Image bauen

Erstellen Sie ein benutzerdefiniertes Image aus Ihrem Dockerfile:

docker build -t my-ubuntu-image .

Die Option -t weist dem Image einen Namen zu.

4. Image überprüfen

Überprüfen Sie Ihr neu erstelltes Image:

docker images

5. Einen Container ausführen

Starten Sie einen Container aus dem benutzerdefinierten Image:

docker run -it my-ubuntu-image

Dieses Image enthält Werkzeuge wie curl und vim.

5. Einrichtung einer japanischen Umgebung in Ubuntu‑Containern

Das Standard‑Ubuntu‑Image verwendet eine englische Umgebung. Um Japanisch zu nutzen, ist zusätzliche Konfiguration erforderlich.

Japanisches Locale einstellen

Um die Anzeige und Eingabe von Japanisch in einem Ubuntu‑Container zu ermöglichen, installieren Sie das japanische Locale.

1. Erforderliche Pakete installieren

apt update
apt install -y language-pack-ja locales

2. Locale konfigurieren

Locale erzeugen und anwenden:

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. Einstellungen übernehmen

export LANG=ja_JP.UTF-8

Japanische Eingabe einrichten

Um japanische Zeichen im Terminal einzugeben, installieren Sie ibus-mozc:

apt install -y ibus-mozc

Bei Verwendung von GUI‑Anwendungen fügen Sie die folgenden Umgebungsvariablen hinzu:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Verwendung von GUI‑Anwendungen

Um GUI‑Anwendungen innerhalb eines Docker‑Containers auszuführen, verwenden Sie einen X‑Server auf dem Host‑Rechner.

Starten Sie den Container mit aktiviertem X11:

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Optimierung und Minimierung von Docker‑Images

Docker‑Images können optimiert werden, um die Startgeschwindigkeit von Containern zu verbessern und den Speicherverbrauch zu reduzieren. Hier sind mehrere Techniken zur Erstellung leichter Images.

Wie man ein leichtes, auf Ubuntu basierendes Image erstellt

Das Standard‑Image ubuntu:latest ist relativ groß. Die Verwendung einer leichteren Variante wie ubuntu:minimal hilft, die Containergröße zu reduzieren.

FROM ubuntu:minimal

Eine weitere Option ist die Verwendung von Alpine Linux, das deutlich kleiner ist als Ubuntu.

FROM alpine:latest
RUN apk add --no-cache bash curl

Die Nutzung von Alpine kann die Image‑Größe um mehrere hundert Megabyte reduzieren.

Reduzierung der Image‑Größe durch Entfernen unnötiger Dateien

Sie können die Image‑Größe reduzieren, indem Sie unnötige Cache‑Dateien löschen, die von apt-get erstellt wurden.

RUN apt update && apt install -y curl vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

Insbesondere entfernt der Befehl rm -rf /var/lib/apt/lists/* Paketlisten und ungenutzte Daten.

Verwendung von Multi‑Stage‑Builds

Multi‑Stage‑Builds ermöglichen es, Werkzeuge nur während des Build‑Prozesses zu verwenden und gleichzeitig das endgültige Image leichtgewichtig zu halten.

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

Auf diese Weise vermeiden Sie, Entwicklungswerkzeuge in das endgültige Image aufzunehmen, was zu einem deutlich kleineren Footprint führt.

7. Praktisches Beispiel: Anwendungsentwicklung in Ubuntu‑Containern

Dieser Abschnitt führt ein, wie Entwicklungsumgebungen innerhalb von Ubuntu‑Containern eingerichtet werden.

Einrichtung einer Python‑Entwicklungsumgebung

Erstellen Sie das folgende Dockerfile, um eine Python‑Entwicklungsumgebung in einem Ubuntu‑Container einzurichten:

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

Bauen Sie das Image und starten Sie den Container:

docker build -t python-dev .
docker run -it python-dev

Diese Umgebung ermöglicht die Verwendung des Befehls python3 für Skriptentwicklung und -tests.

Einrichtung einer Node.js‑Entwicklungsumgebung

Um eine Node.js‑Entwicklungsumgebung einzurichten, verwenden Sie das folgende Dockerfile:

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

Bauen und starten Sie den Container:

docker build -t node-dev .
docker run -it node-dev

Diese Umgebung ermöglicht die Ausführung von JavaScript und die Anwendungsentwicklung mit dem Befehl node.

8. FAQ & Fehlersuche

Die Verwendung von Docker kann zu verschiedenen Problemen führen. Nachfolgend finden Sie häufige Fragen und typische Lösungen.

Unterschied zwischen Docker und virtuellen Maschinen

  • Docker : Teilt den Kernel des Host‑OS, wodurch es leichtgewichtig ist und Container schnell starten.
  • Virtuelle Maschinen (VMs) : Jede VM enthält ihr eigenes Betriebssystem, was zu höherem Ressourcenverbrauch und langsamerem Start führt.

Docker zeichnet sich durch Ressourcenoptimierung aus und eignet sich für Entwicklungsumgebungen sowie automatisierte Bereitstellungen.

Datenpersistenz in Ubuntu‑Containern

Um Daten auch nach dem Stoppen eines Containers zu behalten, verwenden Sie Volume‑Mounts:

docker run -v my_data:/data ubuntu

Selbst wenn der Container gelöscht wird, können die im Volume my_data gespeicherten Daten wiederverwendet werden.

Häufige Fehler und Lösungen

1. permission denied‑Fehler

Wenn Sie beim Versuch, Docker auszuführen, permission denied sehen, gehört Ihr Benutzer möglicherweise nicht zur Gruppe docker.

Fügen Sie den Benutzer zur Docker‑Gruppe hinzu:

sudo usermod -aG docker $USER

Melden Sie sich ab und wieder an, um die Änderung zu übernehmen.

2. image not found‑Fehler

Wenn ein Image von Docker Hub entfernt wurde, geben Sie beim Pull einen neueren Tag an:

docker pull ubuntu:22.04

Durch die Angabe einer expliziten Version wird sichergestellt, dass das richtige Image abgerufen wird.

年収訴求