Onkel Docker.
Diesmal ** "Es stellt sich heraus, dass die Produktionsumgebung des Kunden nur über einen Proxy ins Internet gehen kann !!!" ** Ein Memo, um in einer solchen Situation nicht zu hetzen.
Angenommen, Debian / Ubuntu.
Da es sich unter einer Proxy-Umgebung befindet, denke ich, dass das Folgende nicht normal übergeben wird, aber selbst wenn Sie die Umgebungsvariable "http_proxy" usw. mit "~ / .bashrc" festlegen, wird die Umgebungsvariable nicht vererbt, wenn Sie "sudo" ausführen, sodass sie nicht so übergeben wird, wie sie ist.
$ sudo apt-get install docker.io
Wenn Sie die Option "-E" zu "sudo" hinzufügen, wird sie übergeben, wenn Sie die Umgebungsvariable erben. Es ist jedoch schwierig, jedes Mal "-E" hinzuzufügen, sodass es einfacher ist, die apt-Einstellungsdatei als eine andere Methode zu schreiben.
:/etc/apt/apt.conf.d/00-proxy
Acquire::http::Proxy "http://{HOST}:{port}";
Acquire::https::Proxy "http://{HOST}:{port}";
Ich denke, RHEL / CentOS-Leute haben eine Einstellungsmethode für yum, also googeln Sie sie bitte entsprechend.
Docker Engine Wenn Sie das Image mit Docker Pull usw. löschen, müssen Sie den Proxy in Docker Engine festlegen.
Sie können einfach die Umgebungsvariable "HTTP_PROXY" "HTTPS_PROXY" festlegen, aber ich denke, dass dies die meiste Zeit mit Systemd funktioniert, sodass die Umgebungsvariable schnell in der Systemd-Konfigurationsdatei angegeben werden kann.
/lib/systemd/system/docker.service
[Service]
Environment=HTTP_PROXY=http://{HOST}:{port}
Environment=HTTPS_PROXY=http://{HOST}:{port}
Nicht nur beim Erstellen eines Docker-Images, sondern wenn Sie mit "apt-get install" usw. ins Internet gehen möchten, müssen Sie für jedes Tool einen Proxy festlegen.
Da apt-get, pip usw. den Proxy nur durch Festlegen der Umgebungsvariablen durchlaufen, legen Sie die Umgebungsvariable vorerst fest und unterstützen Sie die Tools, die einzeln behandelt werden müssen. Sie können die Umgebungsvariablen in der Docker-Datei angeben, um die Umgebungsvariablen zum Zeitpunkt der Erstellung festzulegen. Es scheint jedoch besser, ARG zu verwenden.
Um beispielsweise Argumente in der Docker Compose-Konfigurationsdatei anzugeben, geben Sie die Service-Build-Option wie folgt an.
docker-compose.yml
build:
context: .
args:
- http_proxy=http://{HOST}:{port}
- https_proxy=http://{HOST}:{port}
- HTTP_PROXY=http://{HOST}:{port}
- HTTPS_PROXY=http://{HOST}:{port}
Je nach Werkzeug kann der Name der entsprechenden Umgebungsvariablen oben oder unten sein, daher ist es besser, beide anzugeben.
json:~/.docker/config.json
{
"proxies": {
"default": {
"httpProxy": "http://{HOST}:{port}",
"httpsProxy": "http://{HOST}:{port}"
}
}
}
Configure Docker to use a proxy server | Docker Documentation
Recommended Posts