Nota: Registro de contêiner do GitHub está atualmente em versão beta público e sujeito a alterações. Durante o beta, o armazenamento e a banda larga são grátis. Para usar Registro de contêiner do GitHub, você precisa habilitar a pré-visualização de recursos. Para obter mais informações, consulte "Sobre Registro de contêiner do GitHub" e "Habilitar melhor suporte ao contêiner".
Para fazer push e pull das imagens de contêiner pertencentes a uma organização, um administrador da organização deve habilitar o Registro de contêiner do GitHub para a organização. Para obter mais informações, consulte "Habilitar suporte ao contêiner aprimorado".
Autenticar-se no Registro de contêiner do GitHub
Se você deseja efetuar a autenticação em
Registro de contêiner do GitHub em um fluxo de trabalho de GitHub Actions, em seguida, você deverá usar um token de acesso pessoal (PAT). Atualmente, o GITHUB_TOKEN
não tem as permissões necessárias. No beta de Registro de contêiner do GitHub, a única forma compatível de de autenticação é o PAT.
Os PATs podem conceder amplo acesso à sua conta. Recomendamos selecionar apenas o acesso de leitura ou gravação ou excluir o pacote
ao criar um PAT para efetuar a autenticação no registro de contêiner. Evite incluir o escopo do repositório
em um PAT usado por um fluxo de trabalho do GitHub Actions pois ele concede acesso adicional desnecessário.
Se você desejar usar o registro de contêiner em ações durante a versão beta, siga nossas práticas de segurança recomendadas para o uso do PAT emFortalecimento da segurança para o GitHub Actions".
-
Crie um novo token de acesso pessoal (PAT) com os escopos apropriados para as tarefas que você deseja realizar. Se sua organização exigir SSO, você deverá habilitar o SSO para seu novo token.
Observação: Se você selecionar o escopo
write:packages
, desmarque o escoporepositório
ao criar o PAT. Adicionar um PAT com o escopo derepositório
como um segredo no repositório permite que a credencial seja acessível a todos os colaboradores do repositório. Isso fornece um acesso adicional desnecessário quando um PAT com o escopo dorepositório
é usado em uma ação. Para obter mais informações sobre as práticas de segurança recomendadas para ações, consulte "Fortalecimento de segurança para o GitHub Actions".- Selecione o escopo
read:packages
para fazer o download de imagens de contêineres e ler seus metadados. - Selecione o escopo
write:packages
para fazer o download e o upload de imagens de contêiner e ler e escrever seus metadados. - Selecione o escopo
delete:packages
para excluir imagens de contêineres.
Para obter mais informações, consulte "Criar um token de acesso pessoal para a linha de comando".
- Selecione o escopo
-
Salve seu PAT. Recomendamos salvar o seu PAT como uma variável de ambiente.
$ export CR_PAT=YOUR_TOKEN
-
Ao usar a CLI para seu tipo de container, faça login em serviço de Registro de contêiner do GitHub em
ghcr.io
.$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
Fazer push das imagens do contêiner
Este exemplo faz push da versão mais recente de IMAGE-NAME
.
$ docker push ghcr.io/OWNER/IMAGE_NAME:latest
Este exemplo faz push da versão 2.5
da imagem.
$ docker push ghcr.io/OWNER/IMAGE-NAME:2.5
Ao publicar um pacote pela primeira vez a visibilidade-padrão será privada. Para alterar a visibilidade ou definir permissões de acesso, consulte "Configurar controle de acesso e visibilidade para imagens de contêiner".
Fazer pull das imagens de contêiner
Pull por resumo
Para garantir que você esteja sempre usando a mesma imagem, você pode especificar a versão exata da imagem de contêiner que você deseja fazer pull pelo valor do SHA do resumo
.
-
Para encontrar o valor do SHA do resumo, use
docker inspect
ordocker pull
e copie o valor de SHA apósDigest:
$ docker inspect ghcr.io/OWNER/IMAGE_NAME
-
Remova a imagem localmente, conforme necessário.
$ docker rmi ghcr.io/OWNER/IMAGE_NAME:latest
-
Faça pull da imagem do contêiner com
@YOUR_SHA_VALUE
após o nome da imagem.$ docker pull ghcr.io/OWNER/IMAGE_NAME@sha256:82jf9a84u29hiasldj289498uhois8498hjs29hkuhs
Pull por nome
$ docker pull ghcr.io/OWNER/IMAGE_NAME
Pull por nome e versão
Exemplo de CLI do Docker mostrando uma imagem extraída pelo seu nome e a tag de versão 1.14.1
:
$ docker pull ghcr.io/OWNER/IMAGE_NAME:1.14.1
> 5e35bd43cf78: Pull complete
> 0c48c2209aab: Pull complete
> fd45dd1aad5a: Pull complete
> db6eb50c2d36: Pull complete
> Digest: sha256:ae3b135f133155b3824d8b1f62959ff8a72e9cf9e884d88db7895d8544010d8e
> Status: Downloaded newer image for ghcr.io/orgname/image-name/release:1.14.1
> ghcr.io/orgname/image-name/release:1.14.1
Pull por nome e última versão
$ docker pull ghcr.io/OWNER/IMAGE_NAME:latest
> latest: Pulling from user/image-name
> Digest: sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344
> Status: Downloaded newer image for ghcr.io/user/image-name:latest
> ghcr.io/user/image-name:latest
Criar imagens de contêiner
Este exemplo cria a imagem hello_docker
:
$ docker build -t hello_docker .
Marcar imagens de contêiner
-
Encontre o ID da imagem do Docker que você deseja marcar.
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > ghcr.io/my-org/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > ghcr.io/my-username/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > hello-world latest fce289e99eb9 16 months ago 1.84kB
-
Marque a sua imagem do Docker usando o ID da imagem, o nome da imagem desejada e a hospedagem de destino.
$ docker tag 38f737a91f39 ghcr.io/OWNER/NEW_IMAGE_NAME:latest