Como dito anteriormente na [introdução ao Docker](introdução-ao-docker), é possível criar imagens livremente utilizando o **Docker**.
Em alguns casos de uso, é interessante ter uma imagem base para o projeto, já com todas as dependências de software necessárias para rodá-lo.
Como por exemplo, [a imagem docker do laboratório GQS para o projeto CodeMaster](https://hub.docker.com/r/gqsufsc/codemaster), que é uma imagem que contém todos os conteúdos de software necessários para rodar o projeto.
Ter esta imagem não ajuda apenas no fluxo de CI/CD, mas também pode auxiliar o desenvolvimento da aplicação, pois desenvolvedores podem utilizá-la no desenvolvimento.
Para fazer o upload da imagem, o laboratório GQS possui um perfil para guardar todas as imagens do laboratório, disponível em https://hub.docker.com/u/gqsufsc.
O desenvolvedor precisará logar na conta do GQS, montar a imagem, e fazer o upload dela.<br>
Ele poderá também **solicitar a um administrador para que ele realize o upload!**.
Para fazer isso, o desenvolvedor precisará seguir os seguintes passos:
1.[ter o docker instalado na máquina](https://www.docker.com/products/docker-desktop/)
2. Criar um arquivo `Dockerfile` em qualquer lugar da máquina do desenvolvedor
3. Escrever a lógica necessária para preparar a imagem, com base no que foi explicado na [introdução ao Docker](introdução-ao-docker).
Para este passo, o desenvolvedor poderá utilizar como base (no comando `FROM`) uma das [imagens base do laboratório GQS](https://hub.docker.com/u/gqsufsc).<br>
Pois o laboratório já contém uma série de imagens pré-prontas que pode ser úteis como
ponto de partida para criar uma imagem nova.
4. Fazer login no docker, executando o comando `sudo docker login -p {SENHA} -u {USUARIO}`;<br>
**Nota:** Conseguir o usuário e senha do docker-hub do GQS com o administrador do laboratório!
Aonde `my-image` é o nome que o desenvolvedor quer dar para a imagem.
6. Fazer push da imagem: `sudo docker push gqsufsc/my-image:latest`.
Após isso, o desenvolvedor poderá buscar essa imagem em dockerfiles ou na própria pipeline de CI/CD.
É importante também, na página da sua imagem, adicionar um `README` explicando a sua finalidade e seus componentes! (Se basear nas [imagens já existentes](https://hub.docker.com/u/gqsufsc) para exemplo)