Configurar Docker para que confíe en la AC raíz de Harbor

Las instancias de Harbor usan certificados de Seguridad en la capa de transporte (TLS) emitidos por la autoridad de certificación (CA) raíz de confianza de tu organización. De esta forma, se encripta la conexión entre el cliente Docker y el registro de Harbor para proteger las imágenes frente a accesos no autorizados.

Antes de empezar

Debes seguir estos pasos antes de gestionar las imágenes de tu contenedor:

  1. Instala Docker si aún no lo has hecho siguiendo las instrucciones de https://docs.docker.com/engine/install/ubuntu/. Docker está incluido en Cloud Shell.
  2. Docker requiere acceso con privilegios para interactuar con los registros. En Linux o Windows, añade el usuario que usas para ejecutar comandos de Docker al grupo de seguridad de Docker. Este paso no es necesario en macOS, ya que Docker Desktop se ejecuta en una máquina virtual como usuario root.

    1. En Linux, añade el usuario:

        sudo usermod -a -G docker USER
      
    2. Windows:

        net localgroup docker-users DOMAIN\USER /add
      

      Sustituye USER por el nombre de usuario que quieras añadir.

Configurar Docker para que confíe en la AC raíz de Harbor

Debes configurar tu cliente Docker local para que confíe en la CA raíz de tu organización cuando lo uses para comunicarte con la instancia de Harbor.

Para configurar el cliente de Docker de forma que confíe en la AC raíz, solicita el archivo .crt de la AC raíz al administrador de tu organización y copia la AC raíz de la organización en:

/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt

Sustituye HARBOR_INSTANCE_URL por la URL de tu instancia de Harbor. Por ejemplo, harbor-1.org-1.zone1.google.gdc.test.

Este comando permite que tu cliente de Docker establezca una conexión HTTPS con la instancia de Harbor.

También puedes usar la CLI de gdcloud para iniciar sesión en cualquier clúster de usuario de la organización y copiar la AC web guardada en el clúster:

  export REGISTRY=HARBOR_INSTANCE_URL
  mkdir -p /etc/docker/certs.d/${REGISTRY} && \echo $(kubectl get secret org-web-ca -n istio-system -o
  jsonpath='{.data.ca\.crt}') | openssl base64 -A -d >
  /etc/docker/certs.d/${REGISTRY}/ca.crt

Sustituye HARBOR_INSTANCE_URL por la URL de tu instancia de Harbor. Por ejemplo, harbor-1.org-1.zone1.google.gdc.test.

Si la configuración no se completa correctamente, verás el siguiente mensaje de error:

Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority

Repite los pasos para solucionar este problema y deriva el caso al equipo de ingeniería de GDC si es necesario.