Успешное подключение к приватному реестру ECR не завершает получение образа. ECR предоставляет манифест, а слои образа хранит Amazon S3. Поэтому обход, охватывающий только реестр, может оставить загрузку слоёв на другом маршруте.

Для приватного доступа через конечные точки VPC проверьте оба пути:

  • Интерфейсную конечную точку ECR и её конфигурацию приватного DNS.
  • Конечную точку S3, связанные с ней таблицы маршрутов и политику, разрешающую доступ к бакету слоёв ECR.

Затем укажите нужные имена обхода в процессе, выполняющем получение. Для нативного Docker Engine с существующей конфигурацией прокси в daemon.json примерная конфигурация для us-east-2 выглядит так:

{
  "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"
  }
}

Объедините нужные записи с остальными настройками демона и существующим списком обхода. Если другие загрузки из публичных реестров могут использовать публичного посредника, список HTTP-прокси даёт кандидатов на URL прокси без учётной записи; сохраните обход приватных ECR и S3. Замените учётную запись, регион и hostname загрузки слоёв на имена, которые фактически использует получение. Формы имён S3 и конфигурации конечных точек могут различаться; этот пример не является исчерпывающим списком конечных точек AWS. Применение конфигурации демона требует намеченного перезапуска демона. Docker Desktop использует собственные настройки прокси.

Обход выбирает прямой маршрут. Он не может создать отсутствующую конечную точку S3, подключить таблицу маршрутов, выдать доступ к бакету или исправить приватный DNS. Подтвердите эти зависимости, прежде чем расширять обход на широкие домены AWS.

Настройки прокси контейнера в клиенте Docker не настраивают загрузку образов демоном. Точно так же команда AWS CLI, получающая учётные данные для входа в ECR, имеет собственную конфигурацию прокси; включите её адрес API, если этому отдельному запросу тоже нужен приватный доступ.

Похожие статьи