Home > Software > How to Use the “docker build” Command

How to Use the “docker build” Command

Anastasios Antoniadis

Learn the essentials of using the ‘docker build’ command with our comprehensive guide. Discover how to create Docker images from a Dockerfile, customize builds with arguments, and optimize your Docker development workflow. Perfect for beginners and advanced users alike.

Docker

The docker build command is a foundational tool in Docker, a platform for developing, shipping, and running applications inside lightweight, portable containers. This command builds Docker images from a Dockerfile and a context. The image is the blueprint for a container, encapsulating the application and its dependencies. The context is the set of files in the directory from which the docker build command is run, potentially excluding those listed in a .dockerignore file.

Here’s a detailed guide on how to use the docker build command effectively:

1. Understanding Dockerfiles

Before you use the docker build command, you need a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Here’s an example Dockerfile:

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

2. Running the Build Command

To build an image, open a terminal and navigate to the directory containing your Dockerfile, then run:

docker build -t my-python-app .
  • -t my-python-app: Names and optionally tags the image with the name my-python-app. The tag is optional; if not specified, Docker uses latest as the default tag.
  • .: Specifies the build context. This . means “use the current directory”.

3. Build Context

The build context is the set of files located in the specified PATH or URL. Docker CLI sends this context to the Docker daemon, which uses it to build the image. To speed up the build process, include only necessary files using a .dockerignore file.

4. Using the .dockerignore File

Create a .dockerignore file in the root of the context directory to exclude files and directories from the build context, similar to a .gitignore file. This can reduce build time and minimize image size by avoiding unnecessary files.

5. Advanced Build Options

Specifying a Dockerfile: If you have a Dockerfile with a different name or in a different directory, use the -f or --file option to specify its path:

docker build -t my-python-app -f /path/to/a/Dockerfile .

Build Arguments: Use --build-arg to pass variables at build time that can be accessed like environment variables in the Dockerfile:

docker build --build-arg MY_VAR=value -t my-image .

No Cache: To ensure that every step in the Dockerfile is executed rather than using cached results, use the --no-cache flag:

docker build --no-cache -t my-image .

6. Checking the Image

After the build process completes, list the available Docker images to verify your new image is built:

docker images

7. Running Your Image

Finally, run your newly created Docker image using the docker run command:

docker run -p 4000:80 my-python-app
  • -p 4000:80: Maps TCP port 80 in the container to port 4000 on the Docker host.

This guide provides a comprehensive overview of the docker build command. As you gain experience, you’ll discover more advanced features and best practices to optimize your Docker images and workflow.

Anastasios Antoniadis
Follow me
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x