Como enviar suas imagens docker para o DockerHub

Se você leu meu artigo sobre como criar seu container em Go, pode ter pensado: “Criei o meu container, o que fazer agora? “.

Quando você está dentro de um time, trabalhando com um repositório git remoto em que todos têm acesso, não tem erro: todo mundo vai ter o mesmo Dockerfile na aplicação. Só rodar o Docker e pronto.!

Agora, imagina que surgiu um novo projeto pra trabalhar. Vai ficar copiando o Dockerfile? Vai fazer do zero correndo risco de esquecer algo? Vai carregar particularidades de um projeto para outro sem necessidade? A melhor maneira de resolver isso é subir a sua imagem default de trabalho no Docker Hub.

Então agora vamos aprender como subir nossa imagens…

1. Criar conta

Entre no site e crie uma conta. No cadastro você vai definir a sua Docker ID, que será seu identificador em cada repositório que criar. Assim, toda vez que você for usar a imagem será docker_id/nome_do_repositorio.

2. Criar repositório

Assim que fizer o login, você será direcionado para a página que lista seus repositórios criados. Basta clicar em Create Repository e seguir os passos.

3. Criar imagem

Esse passo foi o que fizemos no artigo “Como criar seu Docker Container para trabalhar com Go.

4. Buildar imagem

Após a imagem pronta, é preciso buildar a imagem. Para isso, rode o comando `docker build -t “docker_id:nome_do_repositorio” -f PATH/Dockerfile .` Se ocorrer alguma falha neste ponto, verifique, corrija no Dockerfile e rode o mesmo comando. Desta forma você vai rebuildar a imagem com a correção.

Obs.: Às vezes há dependências na imagem que precisam ser baixadas. Se o servidor remoto estiver com problemas, você terá um erro na hora de baixar a dependência e isso impedirá de buildar a imagem.

5. Fazer o login no Docker Hub

Esse login é feito pelo terminal. Basta digitar `docker login`. Será solicitado o docker_id e a senha. Estando tudo certo, você terá uma mensagem de sucesso.

6. Bater uma tag na imagem

Para bater a tag, você primeiro precisa descobrir a Image ID da sua imagem. Para isso, no terminal digite `docker images`. Esse comando irá listar todas as imagens que você tem na sua máquina. Na coluna do Repository, procure pelo docker_id/nome_do_repositorio.

Seguindo as colunas a direita você irá encontrar o Image ID. Com ele em mãos, use o comando `docker tag image_id  docker_id/nome_do_repositorio:TAG`.

Esse TAG é literalmente a tag que vai identificar aquela imagem. Esse é meu repositório de imagens Ruby. Nele eu tenho as tags 2.5 (2.5.1), 2.5.3 e latest. Cada tag eu coloquei como sendo uma versão do Ruby, sendo que a latest é sempre a última atualizada. Caso você não queira colocar tag use `latest` como tag.

7. Faça o push

Para fazer o push, basta rodar `docker push docker_id/nome_do_repositorio`. Ele subirá todas as tags que você bateu local daquele repositório. Para bater uma tag específica, basta acrescentá-la no final do da mesma forma que você fez pra bater ela: `docker push docker_id/nome_do_repositorio:tag`.

Depois disso, sua imagem estará disponível no Docker Hub e também para uso em outros projetos, ou até em um CI/CD. Para usar, basta colocar no Dockerfile do seu projeto `FROM docker_id/nome_do_repositorio:tag`. Se você quiser baixar sempre a última, basta remover a tag `FROM docker_id/nome_do_repositorio`.

Nesse vídeo mostro o processo de subir uma imagem que criei para projetos usando Crystal.

Gostou da dica? Quer saber algo específico? Deixa nos comentários!