Configurar o Docker para confiar na CA raiz do Harbor

As instâncias do Harbor usam certificados TLS emitidos pela autoridade de certificação (CA) raiz confiável da sua organização. Isso criptografa a conexão entre o cliente Docker e o registro do Harbor para proteger as imagens contra acesso não autorizado.

Antes de começar

Siga estas etapas antes de gerenciar as imagens de contêiner:

  1. Instale o Docker 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 com privilégios para interagir com registros. No Linux ou no Windows, adicione o usuário que você usa para executar comandos do Docker ao grupo de segurança do Docker. Esta etapa não é necessária no macOS porque o Docker Desktop é executado em uma máquina virtual como o usuário raiz.

    1. Para Linux, adicione o usuário:

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

        net localgroup docker-users DOMAIN\USER /add
      

      Substitua USER pelo nome de usuário que você quer adicionar.

Configurar o Docker para confiar na CA raiz do Harbor

Configure o cliente Docker local para confiar na CA raiz da sua organização ao usar o cliente Docker para se comunicar com a instância do Harbor.

Para configurar o cliente Docker para confiar na CA raiz, peça o arquivo .crt da CA raiz ao administrador da organização e copie a CA 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.

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

Como alternativa, use a CLI gdcloud para fazer login em qualquer cluster de usuário na organização e copie a CA da Web salva 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 concluída, você vai receber a seguinte mensagem de erro:

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

Repita as etapas para resolver esse problema e encaminhe para a engenharia do GDC, se necessário.