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.

Configurar o Docker para usar com o GitHub Packages

Você pode configurar o cliente do Docker para usar o GitHub Package Registry para publicar e recuperar imagens do Docker.

GitHub Package Registry is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 2.22, GitHub One, and GitHub AE.


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

Note: When installing or publishing a docker image, GitHub Package Registry does not currently support foreign layers, such as Windows images.

Autenticar-se no GitHub Package Registry

Note: The GitHub Package Registry Docker registry now offers improved container support. For more information, see "About GitHub Container Registry." To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to Registro de contêiner do GitHub for Docker images" and "Container guides for GitHub Package Registry."

Ao instalar ou publicar uma imagem do docker, o GitHub Package Registry não é compatível camadas externas, como imagens do Windows.

Autenticar-se no GitHub Package Registry

Você precisa de um token de acesso para publicar, instalar e excluir pacotes no GitHub Package Registry. Você pode usar um token de acesso pessoal para autenticar com seu nome de usuário diretamente no GitHub Package Registry ou na API GitHub. Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade.

Para efetuar a autenticação usando um fluxo de trabalho do GitHub Actions:

  • Para registros de pacotes (PACKAGE-REGISTRY.pkg.github.com), você pode usar um GITHUB_TOKEN.
  • For the container registry (ghcr.io/OWNER/IMAGE-NAME), you can use a GITHUB_TOKEN or a personal access token. We strongly recommend you use a GITHUB_TOKEN to avoid unncessary access to your repositories.

For more information about GITHUB_TOKEN used in GitHub Actions workflows, see "Encrypted secrets" and "Authentication in a workflow."

Efetuando a autenticação com um token de acesso pessoal

Você deve usar um token de acesso pessoal com os escopos apropriados para publicar e instalar pacotes no GitHub Package Registry. Para obter mais informações, consulte "Sobre GitHub Package Registry."

Você pode efetuar a autenticação no GitHub Package Registry usando o comando de login do docker.

Para manter suas credenciais seguras, recomendamos que você salve seu token de acesso pessoal em um arquivo local no seu computador e use o sinalizador --password-stdin do Docker que lê o seu token a partir de um arquivo local.

$ cat ~/TOKEN.txt | docker login https://docker.pkg.github.com -u USERNAME --password-stdin

Par usar este exemplo de comando de login, substitua USERNAME pelo seu nome de usuário de GitHub username e ~/TOKEN.txt pelo caminho do arquivo para oseu token de acesso pessoal para GitHub.

Para obter mais informações, consulte "Login do Docker".

Efetuando a autenticação com o GITHUB_TOKEN

Se você estiver utilizando um fluxo de trabalho do GitHub Actions, você pode usar um GITHUB_TOKEN para publicar e consumir pacotes em GitHub Package Registry sem precisar armazenar e gerenciar um token de acesso pessoal. Para obter mais informações, consulte "Authenticating with the GITHUB_TOKEN."

Publicar uma imagem

Note: The GitHub Package Registry Docker registry now offers improved container support. For more information, see "About GitHub Container Registry." To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to Registro de contêiner do GitHub for Docker images" and "Container guides for GitHub Package Registry."

Observação: Os nomes de imagem devem usar apenas letras minúsculas.

O GitHub Package Registry aceita várias imagens do Docker de nível superior por repositório. Um repositório pode ter qualquer número de tags de imagem. Você poderá conhecer uma publicação de serviço degradada ou instalar imagens do Docker com tamanho superior a 10 GB. As camadas são limitadas em 5 GB cada. Para obter mais informações, consulte "Tag do Docker" na documentação Docker.

Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, consulte "Visualizar pacotes".

  1. Determine o nome da imagem e o ID da sua imagem do docker usando imagens do docker.

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. If you haven't already built a docker image for the package, build the image, replacing OWNER with the name of the user or organization account that owns the repository, REPOSITORY with the name of the repository containing your project, IMAGE_NAME with name of the package or image, VERSION with package version at build time, and PATH to the image if it isn't in the current working directory. HOSTNAME pelo nome de host de GitHub, e VERSÃO pela versão de pacote no tempo de criação.

    $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. Se você ainda não criou uma imagem do docker para o pacote, crie a imagem, substituindo PROPRIETÁRIO pelo nome do usuário ou conta de organização proprietária do repositório, REPOSITÓRIO pelo o nome do repositório que contém o seu projeto, IMAGE_NAME pelo o nome do pacote ou imagem, VERSÃO com a versão do pacote no momento da criação, HOSTNAME pelo nome de host de GitHub, e PATH para a imagem, se não estiver no diretório de trabalho atual.

    $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. Publicar a imagem em GitHub Package Registry.

    $ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Observação: Você deve enviar sua imagem usando IMAGE_NAME:VERSION e não IMAGE_NAME:SHA.

Exemplo de publicação de uma imagem do Docker

Você pode publicar a versão 1.0 da imagem de monalisa para o repositório octocat/octo-app usando um ID de imagem.

$ docker images

> REPOSITORY           TAG      IMAGE ID      CREATED      SIZE
> monalisa             1.0      c75bebcdd211  4 weeks ago  1.11MB

# Tag the image with OWNER/REPO/IMAGE_NAME
$ docker tag c75bebcdd211 docker.pkg.github.com/octocat/octo-app/monalisa:1.0

# Push the image to GitHub Package Registry
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

Você pode publicar uma nova imagem do Docker pela primeira vez e nomeá-la como monalisa.

# Build the image with docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
# Assumes Dockerfile resides in the current working directory (.)
$ docker build -t docker.pkg.github.com/octocat/octo-app/monalisa:1.0 .
$ docker build -t docker.pkg.github.com/octocat/octo-app/monalisa:1.0 .

# Faça push da imagem no GitHub Package Registry
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

Fazer o download de uma imagem

Note: The GitHub Package Registry Docker registry now offers improved container support. For more information, see "About GitHub Container Registry." To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to Registro de contêiner do GitHub for Docker images" and "Container guides for GitHub Package Registry."

Você pode usar o comando docker pull para instalar uma imagem do docker a partir de GitHub Package Registry, substituindo OWNER pelo nome do usuário ou conta de organização proprietária do repositório, REPOSITÓRIO pelo nome do repositório que contém seu projeto, IMAGE_NAME pelo nome do pacote ou da imagem, e TAG_NAME pela tag para a imagem que você deseja instalar.

$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Nota: Você deve fazer pull da imagem usando IMAGE_NAME:VERSION e não usar IMAGE_NAME:SHA.

Leia mais

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.