Sobes.tech
Junior

How to build an image and push it to the registry?

sobes.tech AI

Answer from AI

The Docker image is built using the docker build command, which uses a Dockerfile as an instruction. The Dockerfile contains steps to create the image, such as specifying a base image, copying files, installing dependencies, and configuring the environment.

Example Dockerfile:

# Use a base image
FROM ubuntu:latest

# Install dependencies
RUN apt-get update && apt-get install -y nginx

# Copy configuration files
COPY nginx.conf /etc/nginx/nginx.conf

# Expose port
EXPOSE 80

# Run the web server
CMD ["nginx", "-g", "daemon off;"]

Build command:

# docker build -t <image_name>:<tag> <path_to_Dockerfile>
docker build -t my-nginx-image:latest .

-t my-nginx-image:latest assigns the name my-nginx-image with the tag latest to the image. . indicates the current directory where the Dockerfile is located.

After a successful build, the image will be available locally. To save it to a registry (e.g., Docker Hub or a private registry), you first need to log in to the registry with the command docker login.

# docker login <registry_address>
# For Docker Hub, the address is not specified
docker login

Then, you need to retag the image to match the registry address.

# docker tag <local_image_name>:<tag> <registry_address>/<repository_name>:<tag>
# For Docker Hub, if the username is 'myuser'
docker tag my-nginx-image:latest myuser/my-nginx-image:latest

Finally, push the image to the registry:

# docker push <registry_address>/<repository_name>:<tag>
# For Docker Hub
docker push myuser/my-nginx-image:latest

The build and push process is often automated using CI/CD systems (Jenkins, GitLab CI, GitHub Actions, etc.).