Sobre o suporte de Container registry
O Container registry é atualmente compatível com os seguintes formatos de imagem do contêiner:
Ao instalar ou publicar uma imagem Docker, a Container registry é compatível com as camadas estrangeiras, como imagens do Windows.
Efetuar a autenticação no Container registry
Para efetuar a autenticação em Container registry dentro de um fluxo de trabalho GitHub Actions, use o GITHUB_TOKEN
para obter a melhor segurança e experiência. If your workflow is using a personal access token (PAT) to authenticate to ghcr.io
, then we highly recommend you update your workflow to use the GITHUB_TOKEN
.
For guidance on updating your workflows that authenticate to ghcr.io
with a personal access token, see "Upgrading a workflow that accesses ghcr.io
."
Para obter mais informações sobre o GITHUB_TOKEN
, consulte "Autenticação em um fluxo de trabalho".
Se você estiver usando Container registry em ações, siga nossas práticas recomendadas em matéria de segurança naEnrijecimento de 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: Por padrão, quando você selecionar o escopo
write: pacotes
para o seu token de acesso pessoal (PAT) na interface do usuário. O escopo dorepositório
também será selecionado. O escopo derepo
oferece acesso desnecessário e amplo, o qual recomendamos que você evite usar para fluxos de trabalho do GitHub Actions em particular. Para obter mais informações, consulte "Enrijecimento de segurança para o GitHub Actions". As a workaround, you can select just thewrite:packages
scope for your PAT in the user interface with this url:https://github.com/settings/tokens/new?scopes=write:packages
.- 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 Container registry service at
ghcr.io
.$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
Fazer push das imagens do contêiner
This example pushes the latest version of 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 as permissões de acesso, consulte "Configurar controle de acesso e visibilidade de um pacote".
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