Sobes.tech
Junior

Como construir uma imagem e enviá-la para o registo?

sobes.tech IA

Resposta da IA

A construção da imagem Docker é realizada com o comando docker build, que utiliza o Dockerfile como instrução. O Dockerfile contém passos para criar a imagem, como a imagem base, copiar ficheiros, instalar dependências e configurar o ambiente.

Exemplo de Dockerfile:

# Usar uma imagem base
FROM ubuntu:latest

# Instalar dependências
RUN apt-get update && apt-get install -y nginx

# Copiar ficheiros de configuração
COPY nginx.conf /etc/nginx/nginx.conf

# Abrir porta
EXPOSE 80

# Iniciar o servidor web
CMD ["nginx", "-g", "daemon off;"]

Comando de build:

# docker build -t <nome_imagem>:<tag> <caminho_para_Dockerfile>
docker build -t my-nginx-image:latest .

-t my-nginx-image:latest atribui à imagem o nome my-nginx-image com a tag latest. O . indica o diretório atual onde se encontra o Dockerfile.

Após uma construção bem-sucedida, a imagem estará disponível localmente. Para a guardar num registo (por exemplo, Docker Hub ou um registo privado), deve primeiro fazer login no registo com o comando docker login.

# docker login <endereço_do_registo>
# Para Docker Hub, o endereço não é especificado
docker login

Depois, deve reetiquetar a imagem para que corresponda ao endereço do registo.

# docker tag <nome_local>:<tag> <endereço_do_registo>/<nome_do_repositório>:<tag>
# Para Docker Hub, se o utilizador for 'myuser'
docker tag my-nginx-image:latest myuser/my-nginx-image:latest

E, finalmente, fazer push da imagem para o registo:

# docker push <endereço_do_registo>/<nome_do_repositório>:<tag>
# Para Docker Hub
docker push myuser/my-nginx-image:latest

O processo de construção e push é frequentemente automatizado com sistemas CI/CD (Jenkins, GitLab CI, GitHub Actions, etc.).