Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Die Offline-Installation von Docker konnte nicht gestartet werden

Die Offline-Installation von Docker konnte nicht gestartet werden

PHPz
PHPzOriginal
2023-04-25 09:02:551517Durchsuche

Im Zuge der aktuellen Welle von Cloud Computing und Containerisierung hat sich Docker zu einer Mainstream-Anwendungscontainerisierungstechnologie entwickelt und ist zu einem der am weitesten verbreiteten Tools im Bereich Betrieb, Wartung und Entwicklung geworden. In diesem Zusammenhang ist die Offline-Installation von Docker auch zu einer sehr häufigen Anforderung geworden, da viele Benutzer keine Verbindung zum Internet herstellen können oder Internetverbindungen aus Sicherheits- und anderen Gründen verboten sind. Daher ist die Offline-Installation zu einer der bequemsten Installationsmethoden geworden. Bei der Offline-Installation von Docker ist die Installation jedoch häufig erfolgreich, der Start schlägt jedoch fehl, was für Anfänger ein sehr problematisches Problem darstellt.

Dieser Artikel beginnt mit dem eigentlichen Vorgang, stellt die Docker-Offline-Installationsmethode vor und führt eine detaillierte Analyse des Startfehlers durch, um Ihnen eine detaillierte Anleitung zu geben.

1. Docker-Offline-Installation

Es gibt zwei Möglichkeiten, Docker offline zu installieren: Eine besteht darin, es durch Herunterladen der Docker-Binärdatei zu installieren, und die andere darin, yum zu konfigurieren Quelle zu installieren. Ersteres eignet sich hauptsächlich für Server ohne Netzwerkbedingungen, während letzteres für die Offline-Installation von Linux-Entwicklungsumgebungen geeignet ist.

1. Installieren Sie die Docker-Binärdatei

Das Prinzip dieser Methode ist relativ einfach: Laden Sie die Docker-Binärdatei auf die lokale Datei herunter und installieren Sie sie dann. Die spezifischen Schritte sind wie folgt:

1.1 Beziehen Sie die Docker-Binärdatei

Laden Sie die entsprechende Version der Docker-Binärdatei von der offiziellen Website https://www.docker herunter. com/. Beim Herunterladen müssen Sie die Informationen zum aktuellen Betriebssystem kennen. Für das Centos-System können Sie die Binärdatei entsprechend der folgenden Adresse herunterladen.

https://download.docker.com/linux/static/stable/x86_64/ docker-version number.tgz

1.2 Docker-Binärdatei installieren

# 🎜🎜# Während der Installation müssen Sie die heruntergeladene Binärdatei dekomprimieren und die Docker- und Dockerd-Dateien in das Verzeichnis /usr/bin verschieben.

tar -xvf docker-version number.tgz

cp docker/* /usr/bin

2. Installieren Sie durch Konfigurieren der Yum-Quelle

# 🎜🎜#Unter dem Centos-System kann Docker offline installiert werden, indem die Yum-Quelle konfiguriert wird. Die spezifischen Schritte sind wie folgt:

2.1 Besorgen Sie sich die Yum-Quelle von Docker

Laden Sie die entsprechende Version des Docker-Installationspakets von der offiziellen Website https://www.docker herunter .com/. Beim Herunterladen müssen Sie die Informationen zum aktuellen Betriebssystem kennen und das der Systemversion entsprechende RPM-Paket herunterladen.

2.2 Erstellen Sie eine neue lokale Yum-Quelle

Erstellen Sie ein lokales Yum-Quellverzeichnis, kopieren Sie das heruntergeladene Docker-Installationspaket in dieses Verzeichnis und erstellen Sie das Verzeichnis über den Befehl „createrepo“ #🎜 🎜#

mkdir /var/docker

cp docker-ce*.rpm /var/docker

createrepo /var/docker


2.3 Yum-Quelle konfigurieren# 🎜🎜 #
Erstellen Sie eine neue Repo-Datei im Verzeichnis /etc/yum.repos.d und schreiben Sie den folgenden Inhalt

[docker-local]

name=Docker Local repo #🎜 🎜#baseurl=file:///var/docker

enabled=1

gpgcheck=0


2.4 Docker installieren

Führen Sie den folgenden Befehl aus kann Docker installieren

yum install docker-ce

2. Lösung für Startfehler

1. Problembeschreibung

#🎜🎜 # Nach Abschluss der oben genannten Offline-Installation von Docker kann es zu einem Docker-Startfehler mit folgendem Fehler kommen:

$ sudo systemctl start docker

Job für docker.service ist fehlgeschlagen, da der Steuerungsprozess mit einem Fehler beendet wurde Code.

Weitere Informationen finden Sie unter „systemctl status docker.service“ und „journalctl -xe“.

Führen Sie den Befehl systemctl status docker.service aus, um den Grund für den Startfehler herauszufinden. Das „ Der Befehl „ExecStart“ in der Datei docker.service kann nicht erfolgreich ausgeführt werden:

$ sudo systemctl status docker.service
...
30. April 07:40:32 localhost.localdomain systemd[1]: Docker Application Container Engine gestartet.

30. April 07:40:32 localhost.localdomain systemd[1]: docker.service: Hauptprozess beendet, Code=exited, Status=1/FAILURE#🎜🎜 #30. April 07:40:32 localhost.localdomain systemd[1]: Einheit docker.service ist in den Fehlerzustand eingetreten.

30. April 07:40:32 localhost.localdomain systemd[1]: docker.service ist fehlgeschlagen.#🎜 🎜#30. April 07:40:32 localhost.localdomain systemd[1]: Docker.service-Holdoff-Zeit abgelaufen, Neustart geplant.

30. April 07:40:32 localhost.localdomain systemd[1]: Docker-Anwendungscontainer gestoppt Engine.


$sudo journalctl -xe
dockerd-current[14552]: time="2020-04-30T07:40:32.652790118+08:00" level=error msg="systemd Notifier fehlgeschlagen: Systemd-Modul „libsystemd.so“ konnte nicht geladen werden: Gemeinsames o
dockerd-current[14552] kann nicht geöffnet werden: Daemon konnte nicht gestartet werden: Fehler beim Initialisieren des Netzwerkcontrollers: Liste der Bridge-Adressen fehlgeschlagen: PredefinedLocalScopeDefaultNetworks Liste fehlgeschlagen: Vordefiniert # 🎜🎜#dockerd-current[14552]: Fehler beim Starten des Daemons: Fehler beim Initialisieren des Netzwerkcontrollers: Liste der Bridge-Adressen fehlgeschlagen: PredefinedLocalScopeDefaultNetworks Liste fehlgeschlagen: Vordefiniert
systemd[1]: docker.service: Hauptprozess beendet, Code=exited, status=1/FAILURE
systemd[1]: Docker Application Container Engine konnte nicht gestartet werden.
systemd[1]: Einheit docker.service ist in den Fehlerzustand eingetreten.
systemd[1]: Docker. Dienst fehlgeschlagen.

2. Problemanalyse

Anhand der obigen Fehlermeldung können Sie feststellen, dass Docker nicht gestartet werden kann, weil der Netzwerkcontroller von Docker nicht gestartet werden kann. Dies liegt insbesondere daran, dass der Netzwerkcontroller von Docker das Containernetzwerk über die iptables-Firewall verwaltet und die Firewall standardmäßig jeglichen nicht-lokalen Datenverkehr verbietet. Für Docker werden relevante Regeln automatisch zu iptables hinzugefügt, wenn es zum ersten Mal gestartet wird. Wenn Docker jedoch zum ersten Mal offline installiert wird, schlägt das Hinzufügen von Regeln fehl, was dazu führt, dass der Netzwerkcontroller nicht gestartet werden kann. Die konkrete Erscheinung besteht darin, dass Docker beim Starten von Docker automatisch eine Bridge mit dem Namen docker0 basierend auf der lokalen IP-Adresse erstellt. Wenn dieser Vorgang fehlschlägt, kann Docker nicht gestartet werden.

3. Problemlösung

Es gibt zwei Hauptmöglichkeiten, dieses Problem zu lösen:

3.1 Docker0-Brücke erstellen

#🎜🎜 # Das manuelle Erstellen der Docker0-Brücke kann dieses Problem lösen. Unter Centos können Sie den folgenden Befehl ausführen, um die Docker0-Brücke manuell zu erstellen:

sudo ip link add name docker0 type bridge

sudo ip addr add dev docker0 172.17.0.1/16
sudo ip link set dev docker0 up

Starten Sie Docker nach Abschluss der oben genannten Vorgänge erneut und führen Sie den folgenden Befehl als Administrator aus:

#🎜 🎜 #$ sudo systemctl start docker

schließt den Start von Docker ab.

3.2 Ändern der Firewall-Regeln

Das Ausschalten der Firewall oder das Ändern der Firewall-Regeln ist ebenfalls eine wirksame Möglichkeit, dieses Problem zu lösen. Beim Ausschalten der Firewall können Sie den folgenden Befehl verwenden:

$ systemctl stop firewalld

$ systemctl discover firewalld


Diese Situation wird jedoch nicht empfohlen Es wird empfohlen, die Sicherheitsanforderungen zu befolgen. Versuchen Sie, die Firewall Ihres Systems intakt zu halten.

Wenn Sie die iptables-Regeln ändern möchten, können Sie die Regeln über den folgenden Befehl hinzufügen:

$ sudo iptables -P FORWARD ACCEPT

$ sudo iptables - I FORWARD -j ACCEPT# 🎜🎜#$ sudo service iptables save


Nachdem Sie die oben genannten Vorgänge ausgeführt haben, starten Sie Docker erneut und es startet normal.

3. Zusammenfassung

In der Einleitung dieses Artikels können wir sehen, dass Docker aufgrund von Netzwerkproblemen möglicherweise nicht startet. Zu diesem Zeitpunkt müssen wir das Funktionsprinzip des Docker-Netzwerkcontrollers verstehen und ihn manuell konfigurieren oder bestimmte Änderungen an der iptables-Firewall vornehmen, um das Problem des Docker-Startfehlers endgültig zu lösen. Selbstverständlich können wir solche Probleme auch dadurch lösen, dass wir konkrete Fehlermeldungen rechtzeitig überprüfen und analysieren.

Daher müssen wir während der Offline-Installation und des Starts von Docker vorsichtig und geduldig bleiben, weiter experimentieren und debuggen und schließlich eine geeignete Methode zur Lösung des Problems finden.

Das obige ist der detaillierte Inhalt vonDie Offline-Installation von Docker konnte nicht gestartet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn