Eine erfolgreiche Verbindung zu einer privaten ECR-Registry schließt einen Image-Pull nicht ab. ECR liefert das Manifest, während Amazon S3 die Image-Layer speichert. Eine Proxy-Umgehung, die nur die Registry abdeckt, kann daher dazu führen, dass der Layer-Download einen anderen Weg nimmt.

Prüfen Sie für den privaten Zugriff über VPC-Endpunkte beide Pfade:

  • Den ECR-Schnittstellenendpunkt und seine private DNS-Konfiguration.
  • Den S3-Endpunkt, die zugehörigen Routingtabellen und die Richtlinie, die den Zugriff auf den Layer-Bucket von ECR erlaubt.

Tragen Sie dann die relevanten Umgehungsnamen bei dem Prozess ein, der den Pull ausführt. Für eine native Docker Engine mit vorhandener Proxy-Konfiguration in daemon.json sieht eine beispielhafte Konfiguration für us-east-2 so aus:

{
  "proxies": {
    "http-proxy": "http://proxy.example:8080",
    "https-proxy": "http://proxy.example:8080",
    "no-proxy": "123456789012.dkr.ecr.us-east-2.amazonaws.com,prod-us-east-2-starport-layer-bucket.s3.us-east-2.amazonaws.com"
  }
}

Führen Sie die vorgesehenen Einträge mit den übrigen Einstellungen des Daemons und der bestehenden Umgehungsliste zusammen. Können andere Downloads aus öffentlichen Registries einen öffentlichen Vermittler nutzen, liefert die HTTP-Proxy-Liste Kandidaten für die Proxy-URLs ohne Konto; die privaten Ausnahmen für ECR und S3 bleiben erhalten. Ersetzen Sie Konto, Region und Hostnamen des Layer-Downloads durch die Namen, die der Pull tatsächlich verwendet. S3-Namensformen und Endpunktkonfigurationen können abweichen; dieses Beispiel ist keine vollständige Liste der AWS-Endpunkte. Das Anwenden der Daemon-Konfiguration erfordert den vorgesehenen Neustart des Daemons. Docker Desktop verwendet eigene Proxy-Einstellungen.

Eine Umgehung wählt einen direkten Weg. Sie kann keinen fehlenden S3-Endpunkt erzeugen, keine Routingtablelle anhängen, keinen Bucket-Zugriff gewähren und kein privates DNS reparieren. Bestätigen Sie diese Abhängigkeiten, bevor Sie die Umgehung auf breite AWS-Domains ausdehnen.

Die Container-Proxy-Einstellungen des Docker-Clients konfigurieren die Image-Downloads des Daemons nicht. Ebenso hat ein AWS-CLI-Befehl, der ECR-Anmeldedaten beschafft, seine eigene Proxy-Konfiguration; nehmen Sie dessen API-Ziel auf, wenn auch diese separate Anfrage privaten Zugriff benötigt.

Ähnliche Artikel