GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Installieren und Verwenden von Docker unter CentOS und Fedora

Docker ist ein Tool, mit dem Sie schlanke, eigenständige Pakete namens Container erstellen, bereitstellen und verwalten können . Diese Container verfügen über den erforderlichen Code, die Bibliotheken, die Laufzeit, die Systemeinstellungen und die Abhängigkeiten, die zum Ausführen einer Anwendung erforderlich sind.

Diese Anleitung behandelt die Installation der Docker Engine auf verschiedenen Linux-Distributionen mit YUM oder DNF Paketmanager, einschließlich CentOS und Fedora, sowie das Erhalten und Ausführen von Docker-Images.

Bevor Sie beginnen

  1. Stellen Sie sicher, dass Sie über die Befehlszeile Zugriff auf einen Linux-Server haben, auf dem eine unterstützte Linux-Distribution ausgeführt wird. Wenn nicht, befolgen Sie die Anleitungen „Erste Schritte“ und „Einrichten und Sichern einer Compute-Instanz“, um einen neuen Linode zu erstellen.

    Hinweis Dieses Handbuch wurde für Nicht-Root-Benutzer geschrieben. Befehlen, die erhöhte Berechtigungen erfordern, wird das Präfix sudo vorangestellt . Wenn Sie mit sudo nicht vertraut sind Befehl finden Sie im Handbuch Benutzer und Gruppen.
  2. Sehen Sie sich die folgenden Docker-Leitfäden an, um ein besseres Verständnis von Docker, seinen Vorteilen und seiner Verwendung zu erlangen.

    • Eine Einführung in Docker
    • Wann und warum Docker verwendet werden sollte

Installieren der Docker-Engine

Docker Engine ist die zugrunde liegende Containerisierungssoftware, die beim Bereitstellen von Docker-Containern verwendet wird. Die folgende Anleitung installiert Docker unter CentOS und Fedora mit YUM Paketmanager.

Unterstützte Distributionen: CentOS 7, CentOS 8 (einschließlich anderer Derivate von RHEL 8 wie AlmaLinux und RockyLinux) und Fedora 32 (und höher)

Hinweis Während die YUM Paketmanager wurde durch DNF ersetzt auf CentOS 8 und Fedora, der yum Der Befehl ist immer noch als symbolischer Link zu DNF vorhanden. Daher funktionieren diese Anweisungen immer noch wie vorgesehen.
  1. Stellen Sie sicher, dass Docker derzeit nicht installiert ist. Die Ausgabe, die anzeigt, dass eines der Pakete nicht gefunden wurde, kann problemlos ignoriert werden.

    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    
  2. Installieren Sie die yum-utils Paket, das yum-config-manager enthält . Dadurch wird dnf-plugins-core automatisch installiert bei Verwendung von DNF.

    sudo yum install yum-utils
    
  3. Fügen Sie das Docker-Repository mit yum-config-manager hinzu . Dies wird automatisch dem dnf config-manager zugeordnet Befehl bei Verwendung von DNF. Ersetzen Sie im folgenden Befehl [url] mit der URL des Repositorys für Ihre Distribution:

    sudo yum-config-manager --add-repo [url]
    
    • RHEL/CentOS und Derivate: https://download.docker.com/linux/centos/docker-ce.repo
    • Fedora 32 und höher: https://download.docker.com/linux/fedora/docker-ce.repo
  4. Installieren Sie Docker Engine und andere erforderliche Pakete:

    sudo yum install docker-ce docker-ce-cli containerd.io
    

    Während dieses Schritts werden Sie möglicherweise aufgefordert, den GPG-Schlüssel zu akzeptieren. Der Fingerabdruck sollte 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 lauten . Überprüfen Sie diese Angaben und geben Sie y ein zu akzeptieren.

Weitere Installationsanweisungen für diese Distributionen finden Sie in der Docker-Dokumentation:

  • Installieren Sie die Docker-Engine auf CentOS
  • Installieren Sie die Docker-Engine auf Fedora

Starten und Testen von Docker

Nachdem Docker Engine installiert ist, starten Sie Docker und überprüfen Sie, ob alles funktioniert, indem Sie ein Test-Image ausführen.

  1. Stellen Sie sicher, dass der Docker-Server ausgeführt wird.

    sudo systemctl start docker
    
  2. Konfigurieren Sie Docker optional so, dass es beim Hochfahren des Servers gestartet wird. Dies wird empfohlen, wenn Sie beabsichtigen, eine Produktionsanwendung innerhalb dieser Docker-Installation auszuführen.

    sudo systemctl enable docker
    sudo systemctl enable containerd
    
  3. Vergewissern Sie sich, dass Docker korrekt installiert ist, indem Sie das „hello-world“-Image ausführen.

    sudo docker run hello-world
    

    Bei Erfolg sollte Docker das hello-world-Image herunterladen und ausführen und eine Erfolgsmeldung ausgeben. Neben anderem Text sollte die Ausgabe eine Nachricht ähnlich der folgenden enthalten:

    Hello from Docker!
    This message shows that your installation appears to be working correctly.

Verwalten von Docker mit einem Nicht-Root-Benutzer

Standardmäßig sudo ist erforderlich, um Docker-Befehle auszuführen, aber eine neue Gruppe namens docker , wurde während der Installation erstellt. Wenn der Docker-Daemon startet, öffnet er einen Unix-Socket für Docker Gruppenmitglieder.

Bevor Sie fortfahren, vergewissern Sie sich, dass Sie über ein eingeschränktes Benutzerkonto verfügen, das nicht vorhanden ist gehören zur sudo-Gruppe. Wenn Sie noch kein eingeschränktes Benutzerkonto erstellt haben, finden Sie Anweisungen in den Leitfäden Einrichten und Sichern einer Compute-Instanz oder Linux-Benutzer und -Gruppen.

  1. Geben Sie den folgenden Befehl ein, um einen Benutzer zum Docker hinzuzufügen Gruppe, ersetzt [Benutzer] mit dem Namen Ihres eingeschränkten Benutzerkontos.

    sudo usermod -aG docker [user]
    
  2. Melden Sie sich als eingeschränkter Benutzer beim System an.

  3. Stellen Sie sicher, dass der eingeschränkte Benutzer docker ausführen kann Befehle ohne sudo indem Sie das Bild „hello-world“ erneut ausführen.

    docker run hello-world
    

    Die Ausgabe sollte eine ähnliche Erfolgsmeldung wie die vorherige Ausgabe haben.

Achtung Der Docker Die Gruppe gewährt ähnliche Rechte wie der Root-Benutzer. Weitere Informationen dazu, wie sich dies auf die Systemsicherheit auswirken kann, finden Sie im Handbuch Docker Daemon Attack Surface in der Docker-Dokumentation. Um den Docker-Daemon ohne Root-Rechte auszuführen, befolgen Sie die Anweisungen unter Docker-Daemon als Nicht-Root-Benutzer ausführen (Rootless-Modus).

Beheben von Fehlern beim Laden von Konfigurationsdateien

Wenn der Benutzer sudo docker ausgeführt hat Befehle, bevor sie der Gruppe beitreten, wird ihnen möglicherweise ein Fehler beim Laden der Konfigurationsdatei wie folgt angezeigt:

WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

Das Problem ist, dass das .docker-Verzeichnis in ihrem Home-Verzeichnis (~/.docker) mit Berechtigungen erstellt wurde, die von sudo gewährt wurden .

Es gibt zwei mögliche Lösungen:

  1. Entfernen Sie die .docker Verzeichnis aus ihrem Home-Verzeichnis. Docker erstellt es automatisch neu, aber alle benutzerdefinierten Einstellungen gehen verloren.

  2. Ändern Sie die Berechtigungen für .docker Verzeichnis mit den Befehlen:

    sudo chown example_user:example_user /home/example_user/.docker -R
    sudo chmod g+rwx "/home/example_user/.docker" -R
    

Verwenden von Docker-Images zum Bereitstellen von Containern

Docker-Images sind Vorlagen, die die Anweisungen und Spezifikationen zum Erstellen eines Containers enthalten. Um Docker verwenden zu können, müssen Sie zunächst ein Image abrufen oder Ihr eigenes erstellen, indem Sie eine Docker-Datei erstellen. Weitere Informationen finden Sie unter Eine Einführung in Docker.

Bilder auflisten

Führen Sie den folgenden Befehl aus, um alle Images auf Ihrem System aufzulisten. Dies sollte hello-world ausgeben Bild, das in einem vorherigen Schritt verwendet wurde, sowie alle zusätzlichen Bilder, die Sie möglicherweise bereits erhalten haben.

docker images

Ein Bild finden

Bilder werden in Docker-Registrierungen wie Docker Hub (der offiziellen Registrierung von Docker) gespeichert. Sie können auf dieser Website nach Bildern suchen oder den folgenden Befehl verwenden, um die Docker-Registrierung zu durchsuchen. Ersetzen Sie im folgenden Befehl [keyword] mit den Schlüsselwörtern, nach denen Sie suchen möchten, z. B. nginx oder apache .

docker search [keyword]

Ein Bild erhalten

Sobald Sie ein Bild gefunden haben, laden Sie es auf Ihren Server herunter. Ersetzen Sie im folgenden Befehl [image] mit dem Namen des Bildes, das Sie verwenden möchten.

docker pull [image]

Um beispielsweise das offizielle Nginx-Image herunterzuladen, führen Sie Folgendes aus:docker pull nginx .

Ein Image ausführen

Erstellen Sie als Nächstes einen Container basierend auf dem Image, indem Sie docker run verwenden Befehl. Ersetzen Sie erneut [image] mit dem Namen des Bildes, das Sie verwenden möchten.

docker run [image]

Wenn das Image noch nicht heruntergeladen wurde und in der Docker-Registrierung verfügbar ist, wird das Image automatisch auf Ihren Server heruntergeladen.

Verwalten von Docker-Containern

Container auflisten

Führen Sie den folgenden Befehl aus, um alle aktiven (und inaktiven) Docker-Container aufzulisten, die auf Ihrem System ausgeführt werden:

docker ps -a

Die Ausgabe sollte wie folgt aussehen. Diese Beispielausgabe zeigt hello-world Behälter.

CONTAINER ID   IMAGE         COMMAND    CREATED       STATUS                   PORTS     NAMES
5039168328a5   hello-world   "/hello"   2 hours ago   Exited (0) 2 hours ago             magical_varahamihira

Starten eines Containers

Starten Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID] mit der Container-ID, die dem Container entspricht, den Sie starten möchten:

docker start [ID]

Stoppen eines Containers

Stoppen Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID] mit der Container-ID, die dem Container entspricht, den Sie stoppen möchten:

docker stop [ID]

Einige Bilder (wie die hello-world image) stoppen automatisch, nachdem sie ausgeführt wurden. Viele andere Container werden jedoch weiter ausgeführt, bis sie ausdrücklich zum Stoppen aufgefordert werden, und Sie möchten diese Container möglicherweise im Hintergrund ausführen. Für diese Fälle kann dieser Befehl nützlich sein.

Entfernen eines Containers

Entfernen Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID] mit der Container-ID, die dem Container entspricht, den Sie entfernen möchten:

docker rm [ID]

Weitere Informationen

Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.

  • Website für Docker
  • Dokumentation für Docker
  • Website für containerd

Docker
  1. Installieren von JAVA 8 JDK auf CentOS, RedHat und Fedora

  2. Installation von PostgreSQL und phpPgAdmin in CentOS

  3. Installieren und Konfigurieren von PHP 7x auf Centos 8

  4. So installieren und verwenden Sie Docker Compose unter CentOS

  5. Installieren und Verwenden von XeTeX

So installieren Sie Docker unter CentOS 8

Installieren von Apache und PHP unter CentOS 8

So installieren Sie Docker auf Fedora 35

So installieren Sie Docker und Docker Compose unter Linux

Richtiges Installieren von Docker unter Ubuntu [Anfängerhandbuch]

So installieren und verwenden Sie Docker unter Ubuntu 20.04