Configure o Docker para confiar na AC raiz do Harbor

As instâncias do Harbor usam certificados Transport Layer Security (TLS) emitidos pela autoridade de certificação (AC) raiz fidedigna da sua organização. Isto encripta a ligação entre o cliente Docker e o registo do Harbor para proteger as imagens contra o acesso não autorizado.

Antes de começar

Tem de realizar estes passos antes de gerir as imagens do contentor:

  1. Instale o Docker, se ainda não estiver instalado, seguindo as instruções em https://docs.docker.com/engine/install/ubuntu/. O Docker está incluído no Cloud Shell.
  2. O Docker requer acesso privilegiado para interagir com registos. No Linux ou Windows, adicione o utilizador que usa para executar comandos do Docker ao grupo de segurança do Docker. Este passo não é necessário no macOS, uma vez que o Docker Desktop é executado numa máquina virtual como utilizador root.

    1. Para Linux, adicione o utilizador:

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

        net localgroup docker-users DOMAIN\USER /add
      

      Substitua USER pelo nome de utilizador que quer adicionar.

Configure o Docker para confiar na AC raiz do Harbor

Tem de configurar o cliente Docker local para confiar na AC raiz da sua organização quando usar o cliente Docker para comunicar com a instância do Harbor.

Para configurar o cliente Docker de modo a confiar na AC raiz, peça o ficheiro .crt da AC raiz ao administrador da sua organização e copie a AC raiz da organização para:

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

Substitua HARBOR_INSTANCE_URL pelo URL da sua instância do Harbor. Por exemplo, harbor-1.org-1.zone1.google.gdc.test.

Este comando permite que o cliente Docker estabeleça uma ligação HTTPS com a instância do Harbor.

Em alternativa, use a CLI gdcloud para iniciar sessão em qualquer cluster de utilizadores na organização e copie a AC Web guardada no cluster:

  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

Substitua HARBOR_INSTANCE_URL pelo URL da sua instância do Harbor. Por exemplo, harbor-1.org-1.zone1.google.gdc.test.

Se a configuração não for bem-sucedida, é apresentada a seguinte mensagem de erro:

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

Repita os passos para resolver este problema e encaminhe-o para a equipa de engenharia do GDC, se necessário.