Sobre o suporte de Container registry
Para fazer push e pull das imagens do contêiner, um administrador da organização ou o proprietário de uma conta pessoal deve habilitar o Container registry. For more information, see "Enabling improved container support with the Container registry."
Ao instalar ou publicar uma imagem do Docker, o registro do Contêiner suporta camadas externas como, por exemplo, as imagens do Windows.
O Container registry é atualmente compatível com os seguintes formatos de imagem do contêiner:
Efetuar a autenticação no Container registry
Os PATs podem conceder amplo acesso à sua conta. You should select only the necessary read:packages, write:packages, or delete:packages scope when creating a PAT to authenticate to the Container registry.
To authenticate to the Container registry within a GitHub Actions workflow, use the GITHUB_TOKEN for the best security and experience.
For guidance on updating your workflows that authenticate to ghcr.io with a personal access token, see "Upgrading a workflow that accesses ghcr.io."
Se você desejar usar o Container registry 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.
Note: By default, when you select the
write:packagesscope for your personal access token (PAT) in the user interface, thereposcope will also be selected. Thereposcope offers unnecessary and broad access, which we recommend you avoid using for GitHub Actions workflows in particular. For more information, see "Security hardening for GitHub Actions." As a workaround, you can select just thewrite:packagesscope for your PAT in the user interface with this url:https://github.com/settings/tokens/new?scopes=write:packages.- Selecione o escopo
read:packagespara fazer o download de imagens de contêineres e ler seus metadados. - Selecione o escopo
write:packagespara fazer o download e o upload de imagens de contêiner e ler e escrever seus metadados. - Selecione o escopo
delete:packagespara 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 Container registry 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 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 inspectordocker pulle 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_VALUEapó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