Wenn Sie Docker nicht installiert haben, führen Sie die Schritte im folgenden Artikel aus, um Docker zu installieren https://qiita.com/m-tmatma/items/06eb40514306e09142c4
Bereiten Sie einen Proxy vor, wie im folgenden Artikel gezeigt. https://qiita.com/m-tmatma/items/7b5ce812c85f30546209
In diesem Artikel wird davon ausgegangen, dass die IP des Proxys "192.168.11.61" und die Portnummer "3128" lautet.
Emulieren Sie eine Umgebung, auf die nur über einen Proxy zugegriffen werden kann. Dadurch kann festgestellt werden, wenn die Einstellung falsch ist.
sudo iptables -A OUTPUT -j REJECT -p tcp --dport 80
sudo iptables -A OUTPUT -j REJECT -p tcp --dport 443
sudo iptables -A OUTPUT -j REJECT -p tcp --dport 9418
sudo iptables -A OUTPUT -j REJECT -p tcp --dport 22
apt
Ich dachte, dass apt im Docker-Container verwendet werden könnte, aber da die in ~ / .docker / config.json
festgelegten Umgebungseinstellungen gültig sind, sind für die Verwendung im Container keine Einstellungen erforderlich.
Nicht erforderlich, wenn die Umgebungsvariable auch in der Hostumgebung auf "http_proxy" "https_proxy" gesetzt ist.
sudo nano /etc/apt/apt.conf
Speichern Sie mit folgendem Inhalt.
Acquire::http::Proxy "http://192.168.11.61:3128";
Acquire::https::Proxy "http://192.168.11.61:3128";
Stellen Sie die Proxy-Variablen wie folgt ein.
test@test-vmware:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://192.168.11.61:3128";
Acquire::https::Proxy "http://192.168.11.61:3128";
sudo apt update -y
sudo apt upgrade -y
Installieren Sie Docker unter https://qiita.com/m-tmatma/items/06eb40514306e09142c4.
sudo apt install -y docker.io docker-compose
Dieser Schritt ist nur erforderlich, wenn Sie den Docker-Befehl ohne sudo ausführen möchten.
Es ist praktisch, Docker ohne Sudo auszuführen. Fügen Sie daher den aktuellen Benutzer zur Docker-Gruppe hinzu. Starten Sie neu, um zu reflektieren.
sudo usermod -aG docker $USER
sudo reboot
Wenn Sie hier neu starten, führen Sie [iptables procedure] erneut aus (# emulieren Sie eine Umgebung, auf die nur über einen Proxy zugegriffen werden kann).
Führen Sie den folgenden Befehl aus.
sudo systemctl edit docker
Geben Sie den folgenden Inhalt in den Editor ein, der von sudo systemctl edit docker
gestartet wurde, speichern Sie ihn und beenden Sie ihn.
[Service]
Environment="HTTP_PROXY=http://192.168.11.61:3128"
Environment="HTTPS_PROXY=http://192.168.11.61:3128"
Geben Sie in dem von sudo systemctl edit docker
gestarteten Editor zusätzlich NO_PROXY
an.
Geben Sie den folgenden Inhalt ein, speichern Sie ihn und beenden Sie ihn.
[Service]
Environment="HTTP_PROXY=http://192.168.11.61:3128"
Environment="HTTPS_PROXY=http://192.168.11.61:3128"
Environment="NO_PROXY=localhost,127.0.0.1"
Es wird in / etc / systemd / system / docker.service.d / override.conf
gespeichert.
Das Folgende ist ein Beispiel, wenn die ausgeschlossene IP nicht angegeben ist.
$ cat /etc/systemd/system/docker.service.d/override.conf
[Service]
Environment="HTTP_PROXY=http://192.168.11.61:3128" "HTTPS_PROXY=http://192.168.11.61:3128"
Reflektieren Sie die Einstellungen.
sudo systemctl daemon-reload
Überprüfen Sie die Einstellungen.
sudo systemctl show docker --property Environment
Starten Sie Docker neu.
sudo systemctl restart docker
Führen Sie die folgenden Schritte aus und überprüfen Sie, ob sie in "HTTP-Proxy" und "HTTPS-Proxy" enthalten sind.
docker info
Referenz http://docs.docker.jp/engine/articles/systemd.html#http https://docs.docker.com/config/daemon/systemd/
Erstellen Sie einen Ordner, um die Einstellungsdatei zu speichern.
mkdir -p ~/.docker
Bearbeiten Sie ~ / .docker / config.json
.
nano ~/.docker/config.json
Geben Sie den folgenden Inhalt in ~ / .docker / config.json
ein und speichern Sie.
{
"proxies": {
"default": {
"httpProxy": "http://192.168.11.61:3128",
"httpsProxy": "http://192.168.11.61:3128"
}
}
}
Um die Ausschlussbedingung für den Proxy anzugeben, geben Sie sie mit "noProxy" in "~ / .docker / config.json" an.
{
"proxies": {
"default": {
"httpProxy": "http://192.168.11.61:3128",
"httpsProxy": "http://192.168.11.61:3128",
"noProxy": "localhost,127.0.0.1"
}
}
}
Referenz https://docs.docker.com/network/proxy/ https://docs.docker.com/network/proxy/#configure-the-docker-client
Sie können Docker wie folgt ziehen.
$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
df20fa9351a1: Pull complete
Digest: sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Vorsorglich ist der direkte Zugriff auf http und https verboten, auch wenn Sie sich bei iptables erkundigen.
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- anywhere anywhere tcp dpt:https reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:http reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:git reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Recommended Posts