Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Beim Ausführen von yum im Dockerfile oder im Container wird ein Fehler gemeldet und die Quelle kann nicht gefunden werden (ungültige Base-URL xxx), aber bei der Ausführung von yum auf dem Hostcomputer gibt es kein Problem. Warum?

Denn egal, ob Dockerfile das Schlüsselwort RUN verwendet, um yum auszuführen, oder direkt in den Container geht, um yum auszuführen, sie alle verwenden die Quelle im Docker-Image (CentOS befindet sich im Pfad /etc/yum.repo.d/CentOS-Base.repo), sodass Sie die Quelle im selben Pfad auf dem Hostcomputer in den Container kopieren und dann ein neues „Basisimage“ von Docker committen müssen. Zu diesem Zeitpunkt wird bei Verwendung von Docker Build XXX (d. h. Verwendung der Dockerfile-Methode) kein Fehler gemeldet.

Kopiermethode: docker cp xxx xxx

Inhaltserweiterung

Fehler beim Ausführen des Yum-Vorgangs in der Docker-Datei

Schauen wir uns zunächst die Fehlermeldung an:

Senden des Build-Kontexts an den Docker-Daemon 9,363 MB
Schritt 1: VON docker.io/centos
---> 196e0ce0c9fb
Schritt 2: MAINTAINER Liuliangliang
---> Cache verwenden
---> 7d7e06799c20
Schritt 3: ADD file/tomcat7.tgz /usr/local/
---> Cache verwenden
---> 10ffdea53a02
Schritt 4: Führen Sie den Befehl „yum install java-1.8.0-openjdk -y“ aus.
---> Wird ausgeführt in 7824a339e077
Geladene Plugins: fastestmirror, ovl


Eines der konfigurierten Repositories ist ausgefallen (Unbekannt),
und yum hat nicht genügend zwischengespeicherte Daten, um fortzufahren. An diesem Punkt ist die einzige
Das Sicherste, was yum tun kann, ist, zu scheitern. Es gibt ein paar Möglichkeiten, dies zu „beheben“:

1. Kontaktieren Sie den Upstream des Repository und lassen Sie das Problem beheben.

2. Konfigurieren Sie die Basis-URL usw. für das Repository neu, sodass sie auf eine funktionierende
upstream. Dies ist vor allem dann sinnvoll, wenn Sie eine neuere
Distributionsversion als vom Repository unterstützt (und die
Pakete für die vorherige Distributionsversion funktionieren weiterhin).

3. Führen Sie den Befehl mit vorübergehend deaktiviertem Repository aus
yum --disablerepo=<repoid> …

4. Deaktivieren Sie das Repository dauerhaft, damit Yum es nicht standardmäßig verwendet.
ignoriert das Repository dann einfach, bis Sie es dauerhaft aktivieren
erneut oder verwenden Sie --enablerepo für die temporäre Verwendung:

yum-config-manager --disable <repoid>
oder
Abonnement-Manager-Repositorys --disable=<repoid>

5. Konfigurieren Sie das fehlerhafte Repository so, dass es übersprungen wird, wenn es nicht verfügbar ist.
Beachten Sie, dass yum versucht, das Repo zu kontaktieren. Wenn es die meisten Befehle ausführt,
also muss ich es jedes Mal versuchen und scheitern (und daher wird yum viel
Wenn es sich jedoch um ein sehr vorübergehendes Problem handelt, ist dies oft eine nette
Kompromiss:

yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Für das Repo kann keine gültige Basis-URL gefunden werden: base/7/x86_64
Mirrorlist konnte nicht abgerufen werden. http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container Fehler war
14: curl#6 – „Host konnte nicht aufgelöst werden: mirrorlist.centos.org; Unbekannter Fehler“
Der Befehl '/bin/sh -c yum install java-1.8.0-openjdk -y' hat einen Code ungleich Null zurückgegeben: 1

Lösung:

Sie müssen lediglich den DNS-Dienst zur Datei resolv.conf hinzufügen. Diese Datei befindet sich in /etc. Fügen Sie hinzu

Nameserver 8.8.8.8
Nameserver 8.8.4.4
Suche nach lokaler Domain

Das ist alles

Dies ist das Ende dieses Artikels zur Behebung des Fehlers beim Aufrufen von Yum aus einem Docker-Container. Weitere Informationen zur Behebung des Fehlers beim Aufrufen von Yum aus einem Docker-Container finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierter Code des Beispiels zum Herunterladen des Docker-Installationspakets von yum und zur Installation auf einem Offline-Computer
  • So konfigurieren Sie die offizielle Docker-Quelle und installieren Docker mit Yum

<<:  Reines JavaScript zur Implementierung des Zahlenratespiels

>>:  MySQL verwendet benutzerdefinierte Funktionen, um die übergeordnete ID oder untergeordnete ID rekursiv abzufragen

Artikel empfehlen

MySQL verwendet ein Limit, um die Beispielmethode für Paging zu implementieren

1. Grundlegende Implementierung des Limits Im All...

vue realisiert die Anpassung der Spaltenbreite von el-table perfekt

Inhaltsverzeichnis Hintergrund Technische Lösung ...

Implementierung von Platzhaltern und Escape-Zeichen in der Linux-Befehlszeile

Wenn wir Stapeloperationen für einen Dateityp aus...

MySQL-String-Splitting-Beispiel (String-Extraktion ohne Trennzeichen)

String-Extraktion ohne Trennzeichen Fragenanforde...

So implementieren Sie Call, Apply und Binding in nativem JS

1. Implementieren Sie den Anruf Schritt: Legen Si...

So kaufen Sie einen Server und richten ihn zunächst ein

Ich habe eine Weile nicht mit Servern gearbeitet....

Tipps zum MySQL-Abfragecache

Inhaltsverzeichnis Vorwort Einführung in QueryCac...

Nginx Reverse-Proxy-Konfiguration entfernt Präfix

Wenn Sie nginx als Reverse-Proxy verwenden, könne...

So verwenden Sie http und WebSocket in CocosCreator

Inhaltsverzeichnis 1. HttpGET 2. HTTP POST WebSoc...

Docker verwendet das Tool nsenter, um in den Container zu gelangen

Bei der Verwendung von Docker-Containern ist es b...