Ich versuche, eine Docker-Maschine zum Erstellen einer Instanz in einer privaten Cloud (Openstack) zu verwenden, die sich hinter einem HTTP-Proxy eines Unternehmens befindet.
Ist es möglich, Docker-Maschinen mitzuteilen, dass sie den Proxy verwenden sollen, oder muss ich ein Bild haben, das bereits mit der http_proxy-env-Variablen vorkonfiguriert ist?
Mit der aktuellen Docker-Maschinenversion kann ich keine bessere Methode finden, um die Änderung vorzunehmen, als in boot2docker ( Docker/Boot2Docker: HTTP/HTTPS-Proxies für Docker unter OS X festlegen ).
Wenn Sie den Proxy manuell in/var/lib/boot2docker/profile in der Docker-Maschine festlegen, wird die Proxy-Einstellung nach dem Neustart automatisch entfernt.
Also muss ich eine Docker-Maschine mit --engine-env
für Proxy erstellen
docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://example.com:8080 \
--engine-env HTTPS_PROXY=https://example.com:8080 \
--engine-env NO_PROXY=example2.com \
proxybox
Dies ist eine zwei Jahre alte Antwort. In .__ wurden viele Änderungen vorgenommen. Docker, also wenn Sie es immer noch nicht schaffen, dass es hinter dem Proxy funktioniert, bitte lese @ Senris Antwort .
Dokumentation: Docker-Maschine erstellen
Wie bereits erwähnt, können Sie die Datei unter bearbeiten
$HOME\.docker\machine\machines\default\config.json
und setzen Sie die Variablen HTTP_PROXY, HTTPS_PROXY und NO_PROXY (oder löschen Sie sie):
"HostOptions": {
"Driver": "",
...
"EngineOptions": {
...
"Env": [
"HTTP_PROXY=http://10.121.8.110:8080",
"HTTPS_PROXY=http://10.121.8.110:8080",
"NO_PROXY=192.168.23.4"
],
Nachdem die Datei bearbeitet wurde, müssen Sie nur noch Folgendes ausführen:
docker-machine provision
Die vorhandene Docker-Machine-Konfiguration kann geändert werden, um eine Umgebung für den Proxy hinzuzufügen. Die config.json unter $ HOME/.docker/machine/machines //. Config.json kann bearbeitet werden.
Fügen Sie "HTTP_PROXY = http://example.com:8080 " zu Env in config.json hinzu. Starten Sie die Maschine neu und Sie sind fertig.
Wenn Sie die Maschine (VM) bereits erstellt haben, können Sie den Proxy folgendermaßen konfigurieren:
1- SSH into the docker dev Host: docker-machine ssh dev
2- Add the following lines to /var/lib/boot2docker/profile (this file is read-only, use Sudo)
export HTTP_PROXY=http://<proxy>:<port>
export HTTPS_PROXY=http://<proxy>:<port>
3- Exit the ssh session and restart the docker machine: docker-machine restart dev
Ab Docker 18.09 können Sie Umgebungsvariablen wie Proxy für den Container in der Befehlszeile wie folgt angeben:
docker run --env HTTP_PROXY="172.10.13.14" -it myImage:latest /bin/bash
Außerdem können wir diese Einstellungen für den Docker-Client festlegen, indem Sie sie wie folgt in die ~/.docker/config.json
-Datei schreiben:
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:3001",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
Weitere Informationen finden Sie unter docs .