Published on

Mastering Docker Images: Pull, Build, and Push Explained

Authors
  • avatar
    Name
    Hieu Cao
    Twitter

Introduction

Docker images are the foundation of containers. They define the software environment, including application code, libraries, and dependencies. This guide will help you understand how to work with Docker images by pulling existing ones, building custom images, and pushing them to a repository like Docker Hub.


What Are Docker Images?

Docker images are lightweight, standalone, and executable packages that include everything needed to run a piece of software. They serve as blueprints for creating containers.


Step 1: Pulling Images from Docker Hub

Docker Hub is a cloud-based repository for sharing and managing Docker images. You can pull images from Docker Hub using the docker pull command.

Example: Pulling the Nginx Image

docker pull nginx

This command fetches the latest nginx image from Docker Hub. To pull a specific version, include the tag:

docker pull nginx:1.21.6

To view downloaded images, use:

docker images

Step 2: Building a Custom Docker Image

You can create your own Docker image using a Dockerfile, which contains instructions for building the image.

Example: Create a Custom Image

  1. Create a Dockerfile:

    # Use the base image
    FROM ubuntu:20.04
    
    # Set the working directory
    WORKDIR /app
    
    # Copy files into the image
    COPY . /app
    
    # Install dependencies
    RUN apt-get update && apt-get install -y curl
    
    # Specify the default command
    CMD ["bash"]
    
  2. Build the image:

    docker build -t my-custom-image .
    
    • -t my-custom-image: Tags the image with the name my-custom-image.
    • .: Specifies the current directory as the build context.
  3. Verify the image:

    docker images
    

Step 3: Running a Container from Your Custom Image

Run a container from the custom image:

docker run -it my-custom-image
  • -it: Starts the container in interactive mode.

Step 4: Pushing Images to Docker Hub

To share your image, push it to Docker Hub.

Example: Push an Image to Docker Hub

  1. Log in to Docker Hub:

    docker login
    
  2. Tag the image with your Docker Hub username:

    docker tag my-custom-image your-username/my-custom-image:latest
    
  3. Push the image:

    docker push your-username/my-custom-image:latest
    
  4. Verify the upload on Docker Hub.


Common Docker Image Commands

Remove an Image

docker rmi my-custom-image

Removes the specified image.

Save an Image to a File

docker save -o my-custom-image.tar my-custom-image

Saves the image to a tar file for backup or sharing.

Load an Image from a File

docker load -i my-custom-image.tar

Loads the image from a tar file.


Conclusion

Understanding Docker images is essential for managing containers effectively. By pulling existing images, building custom ones, and pushing them to repositories, you can streamline your development and deployment workflows.