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

Detaillierte Erläuterung der Js-Klassenkonstruktion und Vererbungsfälle

Die Definition und Vererbung von Klassen in JS si...

Detaillierte Erklärung der Beziehung zwischen Vue und VueComponent

Der folgende Fall überprüft die Wissenspunkte der...

JavaScript zur Implementierung des Flugzeugkriegsspiels

In diesem Artikel erfahren Sie, wie Sie mit Canva...

Zusammenfassung der grundlegenden Verwendung von JS-Arrays

Vorwort Arrays sind eine spezielle Art von Objekt...

CSS erzielt den „Bottom Absorption“-Effekt im Footer

Wir stoßen häufig auf dieses Problem: Wie kann ma...

So ändern Sie das Terminal in Ubuntu 18 in eine schöne Eingabeaufforderung

Ich habe VMware und Ubuntu neu installiert, aber ...

So konfigurieren Sie Umgebungsvariablen in einer Linux-Umgebung

JDK-Downloadadresse: http://www.oracle.com/techne...

So verwenden Sie Docker Compose zum Implementieren des Nginx-Lastausgleichs

Implementieren Sie den Nginx-Lastausgleich basier...

Detaillierte Erklärung zur Verwendung des Canvas-Operation-Plugins fabric.js

Fabric.js ist ein sehr nützliches Plug-In für Can...

CentOS 6.5 Installations-Tutorial zu MySQL 5.7

1. Neue Funktionen MySQL 5.7 ist ein spannender M...

3 Möglichkeiten, die maximale Anzahl von Verbindungen in MySQL richtig zu ändern

Wir alle wissen, dass die standardmäßige MySQL-Da...