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.tgzcp docker/* /usr/bin
# 🎜🎜#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/dockercp 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/dockerenabled=1
gpgcheck=0
2.4 Docker installieren
Führen Sie den folgenden Befehl aus kann Docker installieren
#🎜🎜 # 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 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 bridgesudo ip addr add dev docker0 172.17.0.1/16
sudo ip link set dev docker0 up
#🎜 🎜 #$ 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.
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!