Не удается извлечь изображения из реестра контейнеров GCP

#docker #google-cloud-platform #ubuntu-14.04 #google-container-registry

# #docker #google-облачная платформа #ubuntu-14.04 #google-container-registry

Вопрос:

Я пытаюсь docker pull из реестра контейнеров GCP.

Версии:

 username@this_machine:~$ docker --version
Docker version 1.9.1, build a34a1d5
username@this_machine:~$ gcloud --version
Google Cloud SDK 319.0.0
alpha 2020.11.13
beta 2020.11.13
bq 2.0.62
core 2020.11.13
gsutil 4.55
kubectl 1.16.13
username@this_machine:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.6 LTS
Release:        14.04
Codename:       trusty
 
 username@this_machine:~$ gcloud auth configure-docker
WARNING: Your config file at [/mnt/ext4/users/username/.docker/config.json] contains these credential helper entries:

{
  "credHelpers": {
    "gcr.io": "gcloud",
    "us.gcr.io": "gcloud",
    "eu.gcr.io": "gcloud",
    "asia.gcr.io": "gcloud",
    "staging-k8s.gcr.io": "gcloud",
    "marketplace.gcr.io": "gcloud"
  }
}
Adding credentials for all GCR repositories.
WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are using.
gcloud credential helpers already registered correctly.
username@this_machine:~$ docker pull eu.gcr.io/gcp-project-1/my_docker_image
Using default tag: latest
Pulling repository eu.gcr.io/gcp-project-1/my_docker_image
Error: Status 405 trying to pull repository gcp-project-1/my_docker_image: "v1 Registry API is disabled. If you are not explicitly using the v1 Registry API, it is possible your v2 image could not be found. Verify that your image is available, or retry with `dockerd --disable-legacy-registry`. See https://cloud.google.com/container-registry/docs/support/deprecation-notices"
username@this_machine:~$ docker pull eu.gcr.io/gcp-project-1/my_docker_image:latest
Pulling repository eu.gcr.io/gcp-project-1/my_docker_image
Error: Status 405 trying to pull repository gcp-project-1/my_docker_image: "v1 Registry API is disabled. If you are not explicitly using the v1 Registry API, it is possible your v2 image could not be found. Verify that your image is available, or retry with `dockerd --disable-legacy-registry`. See https://cloud.google.com/container-registry/docs/support/deprecation-notices"
 

Когда я запускаю docker pull python , это работает. Таким образом, он может получить доступ из docker hub, но не из gcp.

Я делал gcloud auth login и пробовал учетные записи служб с правильными разрешениями (и все это работает на любой другой машине)

Я думаю, что либо моя установка cloudSDK, либо установка docker повреждена. Но я не знаю, и поэтому, если есть какие-либо идеи, я был бы благодарен.

Ответ №1:

Вы используете Docker версии 1.9.1, которая действительно устарела, она даже больше не указана на странице Docker, я предлагаю вам начать с обновления до более новой версии docker и повторить попытку.

Вы можете следовать этому руководству, чтобы выполнить обновление на основе вашей ОС.

Кроме того, кажется распространенной ошибкой добавлять флаг ‘—disable-legacy-registry’, но явно не включать или отключать его, правильное использование флага будет:

 --disable-legacy-registry=true or --disable-legacy-registry=false
 

В этом случае, похоже, вам нужно установить для него значение ‘true’.

Комментарии:

1. Я думаю, что моя версия docker довольно устарела. Я попробую обновить и свяжусь с вами. Спасибо!

2. Есть ли разница после обновления?

3. Это определенно была версия docker. Спасибо!