Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Fazer push e pull das imagens do Docker

Você pode armazenar e gerenciar imagens de Docker em Registro de contêiner do GitHub.

GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 2.22, e GitHub One.


O GitHub Package Registry não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. Para obter mais informações, consulte "[produtos de GitHub](/articles/github-s-products)

Neste artigo

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. To use Registro de contêiner do GitHub, you must enable the feature preview. For more information, see "About Registro de contêiner do GitHub" and "Enabling improved container support."

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 o GitHub Container Registry para sua organização".

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".

  1. 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 escopo repositório ao criar o PAT. Adicionar um PAT com o escopo de repositó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 do repositó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".

  2. Salve seu PAT. Recomendamos salvar o seu PAT como uma variável de ambiente.

    $ export CR_PAT=YOUR_TOKEN
  3. 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.

  1. Para encontrar o valor do SHA do resumo, use docker inspect or docker pull e copie o valor de SHA após Digest:

    $ docker inspect ghcr.io/OWNER/IMAGE_NAME
  2. Remova a imagem localmente, conforme necessário.

    $ docker rmi  ghcr.io/OWNER/IMAGE_NAME:latest
  3. 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

  1. 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
  2. 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

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.