Skip to main content

Trabalhando com o registro do Docker

Você pode fazer push e pull das imagens Docker usando o Docker de GitHub Packages

O

Observação: talvez esse tipo de pacote não esteja disponível para sua instância, pois os administradores do site podem habilitar ou desabilitar cada tipo de pacote compatível. Para obter mais informações, confira "Como configurar o suporte a pacotes para sua empresa".

Sobre o suporte ao Docker

Ao instalar ou publicar uma imagem do Docker, o registro do Docker atualmente não é compatível com camadas externas como, por exemplo, as imagens do Windows.

Autenticar-se no GitHub Packages

Você precisa de um token de acesso para publicar, instalar e excluir pacotes.

Você pode usar um PAT (token de acesso pessoal) para se autenticar no GitHub Packages ou na API do GitHub Enterprise Server. Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre escopos relacionados a pacotes para um PAT, confira "Sobre as permissões para pacotes do GitHub".

Para efetuar a autenticação em um registro do GitHub Packages dentro de um fluxo de trabalho de GitHub Actions, você pode utilizar:

  • GITHUB_TOKEN para publicar pacotes associados ao repositório do fluxo de trabalho.
  • um PAT para instalar pacotes associados a outros repositórios privados (que não podem ser acessados pelo GITHUB_TOKEN).

Para obter mais informações sobre o GITHUB_TOKEN usado em fluxos de trabalho do GitHub Actions, confira "Autenticação em um fluxo de trabalho".

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 Packages. Para obter mais informações, confira "Sobre o GitHub Packages".

Você pode se autenticar no GitHub Packages usando o comando de logon docker do Docker.

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

Se a sua instância tiver o isolamento de subdomínio habilitado:

$ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin

Se a sua instância tiver o isolamento de subdomínio desabilitado:

$ cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin

Para usar este exemplo de comando de logon, substitua USERNAME pelo seu nome de usuário do GitHub Enterprise Server , HOSTNAME pela URL do your GitHub Enterprise Server instance e ~/TOKEN.txt pelo caminho do arquivo para o token de acesso pessoal do GitHub Enterprise Server.

Para obter mais informações, confira "Logon do Docker".

Publicar uma imagem

Observação: O GitHub Packages Registro do Docker será substituído no futuro GitHub Enterprise Server pelo Container registry, que dá um suporte melhor ao contêiner. O

Observação: os nomes das imagens só devem usar letras minúsculas.

O GitHub Packages 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, confira "Marca do Docker" na documentação do Docker.

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

  1. Determine o nome e a ID da imagem do Docker usando docker images.

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. Ao usar a ID de imagem do Docker, marque a imagem do Docker substituindo OWNER pelo nome da conta de usuário ou de organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, HOSTNAME pelo nome do host do your GitHub Enterprise Server instance e VERSION pela versão do pacote no momento do build. Se a sua instância tiver o isolamento de subdomínio habilitado:

    $ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Se a sua instância tiver o isolamento de subdomínio desabilitado:

    $ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. Se você ainda não compilou uma imagem do Docker para o pacote, compile a imagem substituindo OWNER pelo nome da conta de usuário ou de organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, VERSION pela versão do pacote no momento do build, HOSTNAME pelo nome do host do your GitHub Enterprise Server instance e PATH pela imagem se não está no diretório de trabalho atual. Se a sua instância tiver o isolamento de subdomínio habilitado:

    $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH

    Se a sua instância tiver o isolamento de subdomínio desabilitado:

    $ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. Publicar a imagem no GitHub Packages. Se a sua instância tiver o isolamento de subdomínio habilitado:

    $ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Se a sua instância tiver o isolamento de subdomínio desabilitado:

    $ docker push HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Observação: efetue push da imagem usando IMAGE_NAME:VERSION e não IMAGE_NAME:SHA.

Exemplo de publicação de uma imagem do Docker

Esses exemplos pressupõem que a sua instância tenha o isolamento de subdomínio habilitado.

Você pode publicar a versão 1.0 da imagem monalisa no repositório octocat/octo-app usando uma 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.HOSTNAME/octocat/octo-app/monalisa:1.0

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Você pode publicar uma nova imagem do Docker pela primeira vez e dar a ela o nome monalisa.

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

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Baixando uma imagem

Observação: O GitHub Packages Registro do Docker será substituído no futuro GitHub Enterprise Server pelo Container registry, que dá um suporte melhor ao contêiner. O

Use o comando docker pull para instalar uma imagem do Docker por meio do GitHub Packages, substituindo OWNER pelo nome da conta de usuário ou de organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, HOSTNAME pelo nome do host do your GitHub Enterprise Server instance e TAG_NAME pela marca da imagem que deseja instalar.

Se a sua instância tiver o isolamento de subdomínio habilitado:

$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Se a sua instância tiver o isolamento de subdomínio desabilitado:

$ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Observação: efetue pull da imagem usando IMAGE_NAME:VERSION e não IMAGE_NAME:SHA.

Leitura adicional