Ich habe Docker auf meinem Ubuntu 13.10 (Saucy Salamander) installiert und wenn ich meine Konsole eingebe:
sudo docker pull busybox
Ich erhalte folgende Fehlermeldung:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Docker-Version:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Ich bin hinter einem Proxyserver ohne Authentifizierung und dies ist meine /etc/apt/apt.conf
Datei:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
Was mache ich falsch?
Acquire::socks::proxy
bedeutet, den Proxy für alle URLs festzulegen, die mit einemsocks
Schema beginnen. Da Siesources.list
keinesocks://
URLs haben, wird diese Zeile vollständig ignoriert.docker-compose
?Antworten:
Hier ist ein Link zur offiziellen Docker-Dokumentation für Proxy-HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Ein kurzer Überblick:
Erstellen Sie zunächst ein System-Dropdown-Verzeichnis für den Docker-Dienst:
Erstellen Sie nun eine Datei mit dem Namen
/etc/systemd/system/docker.service.d/http-proxy.conf
, die dieHTTP_PROXY
Umgebungsvariable hinzufügt :Wenn Sie interne Docker-Registrierungen haben, die Sie ohne Proxy kontaktieren müssen, können Sie diese über die
NO_PROXY
Umgebungsvariable angeben :Spüländerungen:
Stellen Sie sicher, dass die Konfiguration geladen wurde:
Starten Sie Docker neu:
quelle
/etc/default/docker
funktioniert die Bearbeitung nicht. Vielleicht sollte ich entfernen,export
wie für Centos dokumentiert.sudo systemctl restart docker
ist dies unbedingt erforderlich, damit es funktioniert.systemctl
zu Ubuntu 14.04 finden Sieupstart
in der Antwort von @ n3o: Da Ubuntu 14.04 nicht verfügbar ist , werden die Dienste aufgerufen .Ihre APT-Proxy-Einstellungen beziehen sich nicht auf Docker.
Docker verwendet die Umgebungsvariable HTTP_PROXY, falls vorhanden. Zum Beispiel:
Stattdessen schlage ich vor, dass Sie sich Ihre
/etc/default/docker
Konfigurationsdatei ansehen : Sie sollten eine Zeile zum Kommentieren (und möglicherweise Anpassen) haben, damit Ihre Proxy-Einstellungen automatisch angewendet werden. Starten Sie dann den Docker-Server neu:quelle
Unter CentOS befindet sich die Konfigurationsdatei für Docker unter:
Durch Hinzufügen der folgenden Zeile konnte ich den Docker-Daemon hinter einem Proxyserver zum Laufen bringen:
quelle
export
. Bist du sicher, dass das richtig ist?export
funktioniert nur unter CentOS6 und ohne unter CentOS7export HTTP_PROXY=...
ist ein Bashismus, für Nicht-Bash-Shells (wie zum Beispiel was / bin / sh sein kann) verwenden Sie zwei ZeilenHTTP_PROXY=...
undexport HTTP_PROXY
das heißt, ich brauchte dasexport
überhaupt nicht.Wenn Sie den neuen Docker für Mac (oder Docker für Windows ) verwenden, klicken Sie einfach mit der rechten Maustaste auf das Docker-Taskleistensymbol und wählen Sie Einstellungen (Windows: Einstellungen). Gehen Sie dann zu Erweitert und geben Sie dort unter Proxies Ihre Proxy-Einstellungen an. Klicken Sie auf Übernehmen und neu starten und warten Sie, bis Docker neu gestartet wird.
quelle
Unter Ubuntu müssen Sie den http_proxy für den Docker-Daemon festlegen, nicht den Client-Prozess. Dies geschieht in
/etc/default/docker
(siehe hier ).quelle
Um Aruns Antwort zu erweitern , musste ich die "Export" -Befehle entfernen, damit dies in CentOS 7 funktioniert. Also bearbeiten
Und füge hinzu:
Starten Sie dann Docker neu:
Die Quelle ist dieser Blog-Beitrag .
quelle
Warum ein lokal gebundener Proxy nicht funktioniert
Das Problem
Wenn Sie einen lokal gebundenen Proxy ausführen, z. B. abhören
127.0.0.1:8989
, funktioniert dieser in Docker für Mac NICHT . Aus der Docker-Dokumentation :Ähnliches gilt für die Docker-Serverseite. (Um die Server- und Clientseite von Docker zu verstehen, versuchen Sie, sie auszuführen
docker version
.) Die Serverseite wird auf einer eigenen Virtualisierungsebene ausgeführtlocalhost
. Daher wird keine Verbindung zum Proxyserver auf dem hergestelltlocalhost
dem Host-Betriebssystem hergestellt.Die Lösung
Wenn Sie also einen lokal gebundenen Proxy wie mich verwenden, müssen Sie im Grunde die folgenden Schritte ausführen, damit er mit Docker für Mac funktioniert:
Lassen Sie Ihren Proxyserver abhören
0.0.0.0
statt127.0.0.1
. Achtung: Sie benötigen eine ordnungsgemäße Firewall-Konfiguration, um böswilligen Zugriff darauf zu verhindern.Fügen Sie der
lo0
Schnittstelle einen Loopback-Alias hinzu , z10.200.10.1/24
.Stellen Sie HTTP und / oder HTTPS - Proxy
10.200.10.1:8989
von Einstellungen in Docker Traymenü ( unter der Annahme , dass der Proxy - Server auf Port hört8989
).Testen Sie anschließend die Proxy-Einstellungen, indem Sie einen Befehl in einem neuen Container von einem Image ausführen, das nicht heruntergeladen wurde:
Hinweis: Der von festgelegte Loopback-Alias
ifconfig
bleibt nach einem Neustart nicht erhalten. Es dauerhaft zu machen, ist ein anderes Thema. Bitte überprüfen Sie diesen Blog-Beitrag auf Japanisch (Google Translate kann helfen).quelle
Dies ist der Fix, der für mich funktioniert hat: Ubuntu, Docker-Version: 1.6.2
Fügen Sie in der Datei
/etc/default/docker
die folgende Zeile hinzu:Starten Sie Docker neu
quelle
Um Docker für die Arbeit mit einem Proxy zu konfigurieren, müssen Sie die Umgebungsvariable HTTPS_PROXY / HTTP_PROXY zur Docker-Datei sysconfig (
/etc/sysconfig/docker
) hinzufügen .Abhängig davon, ob Sie
init.d
oder das Servicetool verwenden, müssen Sie die Anweisung "export" hinzufügen (aufgrund von Debian-Fehlerberichtsprotokolle - # 767441. Beispiele in / etc / default / docker sind hinsichtlich der unterstützten Syntax irreführend ):Das Docker-Repository (Docker Hub) unterstützt nur HTTPS. Damit Docker mit SSL-Intercepting-Proxys arbeitet, müssen Sie das Proxy-Stammzertifikat zum Trust Trust des Systems hinzufügen.
Kopieren Sie für CentOS die Datei nach
/etc/pki/ca-trust/source/anchors/
den CA Trust Store, aktualisieren Sie ihn und starten Sie den Docker-Dienst neu.Wenn Ihr Proxy die NTLMv2-Authentifizierung verwendet, müssen Sie Zwischenproxys wie Cntlm verwenden , um die Authentifizierung zu überbrücken. Dieser Blog-Beitrag erklärt es im Detail .
quelle
In der neuen Version von Docker, Docker-Engine , sollten Sie in einer systemd- basierten Distribution die Umgebungsvariablenzeile zu /lib/systemd/system/docker.service hinzufügen , wie von anderen erwähnt:
quelle
Gehen Sie nach der Installation von Docker wie folgt vor:
Dann können Sie ziehen oder alles tun:
quelle
Da ich noch keinen Kommentar abgeben darf:
Für CentOS 7 musste ich die Umgebungsdatei in "docker.service" wie hier beschrieben aktivieren: Steuern und konfigurieren Sie Docker mit systemd .
Bearbeiten: Ich füge meine Lösung hinzu, wie von Nilesh angegeben. Ich musste "/etc/systemd/system/docker.service" öffnen und innerhalb des Abschnitts hinzufügen
Erst dann wurde die Datei "etc / sysconfig / docker" auf mein System geladen.
quelle
Um das Problem mit Curl im Docker-Build zu lösen, habe ich Folgendes in die Docker-Datei eingefügt:
Beachten Sie, dass die ENV-Anweisung VOR der RUN-Anweisung lautet.
Und damit der Docker-Daemon auf das Internet zugreifen kann (ich verwende Kitematic mit boot2docker), habe ich Folgendes hinzugefügt
/var/lib/boot2docker/profile
:Dann habe ich Docker mit neu gestartet
sudo /etc/init.d/docker restart
.quelle
Wenn Sie einen socks5-Proxy verwenden, ist hier mein Test mit Docker 17.03.1-ce mit der Einstellung "all_proxy", und es hat funktioniert:
quelle
Die Komplettlösung für Windows zum Konfigurieren der Proxy-Einstellungen.
Sie können es direkt konfigurieren, indem Sie mit der rechten Maustaste auf Einstellungen im Docker-Symbol und dann auf Proxies klicken.
Dort können Sie die Proxy-Adresse, den Port, den Benutzernamen und das Passwort konfigurieren.
In diesem Format:
Beispiel:
Nichts weiter als das.
quelle
Das einfache Festlegen von Proxy-Umgebungsvariablen hat mir in Version 1.0.1 nicht geholfen ... Ich musste die
/etc/default/docker.io
Datei mit dem richtigen Wert für die Variable "http_proxy" aktualisieren.quelle
Wenn Sie sich in Ubuntu befinden, führen Sie diese Befehle aus, um Ihren Proxy hinzuzufügen.
Und kommentieren Sie die angegebenen Zeilen aus
Und ersetzen Sie es durch Ihren entsprechenden Proxyserver und Benutzernamen.
Starten Sie Docker anschließend neu mit:
Jetzt können Sie Docker-Befehle hinter dem Proxy ausführen:
quelle
Möglicherweise müssen Sie Kleinbuchstabenvariablen einrichten. In meinem Fall sieht meine Datei /etc/systemd/system/docker.service.d/http-proxy.conf folgendermaßen aus:
Viel Glück! :) :)
quelle
Ich hatte auch das gleiche Problem hinter einer Firewall. Befolgen Sie die folgenden Schritte:
Verwenden oder entfernen Sie die Datei https_prxoy.conf nicht.
Laden Sie Ihren Docker-Container neu und starten Sie ihn neu:
quelle
Wenn Sie unter Ubuntu arbeiten, sollten Sie diesen Befehl ausführen:
Und laden Sie Docker neu mit:
Oder geh
/etc/docker.io
mit Nano ...quelle
Unter Ubuntu 14.04 (Trusty Tahr) mit Docker 1.9.1 habe ich die
http_proxy
Zeile einfach auskommentiert, den Wert aktualisiert und dann den Docker-Dienst neu gestartet.und dann
quelle
Unter RHEL6.6 funktioniert nur dies (beachten Sie die Verwendung von
export
):/ etc / sysconfig / docker
HINWEIS: Beide können die verwenden
http
Protokoll verwenden.)Vielen Dank an https://crondev.com/running-docker-behind-proxy/
quelle
In meinem Netzwerk arbeitet Ubuntu hinter einem ISA-Proxyserver eines Unternehmens. Und es erfordert eine Authentifizierung. Ich habe alle oben genannten Lösungen ausprobiert und nichts hat geholfen. Was wirklich geholfen hat, war das Schreiben einer Proxy-Zeile in eine Datei
/etc/systemd/system/docker.service.d/https-proxy.conf
ohne Domain-Namen .Anstatt
oder
und ein anderer Ersatz wie
@ -> %40
oder\ -> \\
ich versuchte zu verwendenUnd es funktioniert jetzt.
quelle
Versuche dies:
quelle
Dies beantwortet die Frage nicht genau, kann aber hilfreich sein, insbesondere wenn Sie sich nicht mit Servicedateien befassen möchten.
Wenn Sie derjenige sind, der das Image hostet, besteht eine Möglichkeit darin, das Image stattdessen als Teerarchiv zu konvertieren, indem Sie auf dem Server Folgendes verwenden .
Laden Sie einfach das Archiv herunter und verwandeln Sie es wieder in ein Bild.
quelle