Log In

How to Install and Use Docker on Debian

How to Install and Use Docker on Debian
Reading time: 10 min
Hostman Team
Technical writer

Docker's impact on the packaging, deployment, and execution of apps makes it the preferred method of containerization. Installing Docker on Debian provides multiple benefits as it streamlines the workflow, enhances security measures, and optimizes resource management. Docker helps developers build, test and deploy their apps in a single environment, free from system configurations. It offers strong security as containers are isolated from the host system, and any threats within the application do not impact the host machine.

In this article we'll delve into the basics of Docker and how to install it on Debian. Our comprehensive guide will walk you through the process of utilizing Docker on Debian. You'll discover useful tips for streamlining the containerization of your applications. Whether you're a novice or seeking to improve your expertise, this tutorial offers a thorough overview of Docker and its significance in application containerization on Debian.

Preparing Debian for Docker Installer

Before installing and utilizing Docker on Debian, you should ensure that your system meets the requirements. This includes checking the compatibility of your hardware and software with Docker, such as the operating system and kernel version, processor architecture, and free disk space. It is also essential to confirm that your system possesses adequate RAM and CPU resources to effectively run Docker and its containers.

To ensure that your system is compatible, use the command 'uname -a' in the terminal. This will provide details about your operating system and kernel version, and processor architecture. Docker specifically requires a 64-bit version of Debian with a minimum kernel version of 3.10.

For optimal performance, it is essential to have up-to-date software on your system. This includes upgrading any components used by it. Using outdated packages leads to compatibility issues and hinders the smooth functioning. In order to install Docker on Debian correctly, ensure to run the update and upgrade commands specific to your operating system.

How to Install Docker on Debian

Once you have checked the compatibility of your system and set up the dependencies, proceed with the Docker installation on Debian.

  1. Add the Docker repository to your system's sources list to access the latest updates and versions of Docker using the following command:

echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
  1. However, to install Docker on Debian correctly, it is necessary to add the relevant keys to your system to prevent any potential repository errors. They serve as authentication for the packages that will be downloaded and installed.

To add the keys, use the following command:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

By adding the required keys to your system, you will be able to smoothly install Docker without any problems.

  1. Update your system's package list by running the following command:

sudo apt-get update
  1. Install Docker on Debian by executing the following command:

sudo apt-get install docker-ce
  1. Verify that Docker is installed correctly by running the following command:

sudo docker run hello-world

If installed successfully, a message will confirm that Docker is running.

  1. Use the following command to check the Docker service to start on boot:

systemctl is-enabled docker

Docker automatically starts by default whenever the system boots.

  1. After configuring Docker to start on boot, verify its correct functioning. Use the  following command to check the installed version of Docker:

docker version
  1. Use the following command to view Docker's activity, running status, and any potential errors:

sudo systemctl status docker

Configuring Docker on Debian

Start configuring Docker on Debian by adding users. While Docker typically operates under the root user, it is better to establish another user for Docker for security reasons. Use the 'adduser' command to indicate a username and password:

sudo adduser --home /home/hostman --shell /bin/bash hostman

In this example:

--home /home/hostman: specifies the new user's home directory /home/hostman

--shell /bin/bash: specifies that the default shell for a new user will be /bin/bash

Once users are created, it is crucial to add them to the Docker group to provide access and permissions, using the command:

sudo usermod -aG docker hostman

You can test if you can run Docker commands without root privileges by using the command 'docker ps':

docker ps -a

This command will list all containers on your host system, including stopped ones.

If the command runs successfully, it confirms that you have successfully created and added your user to the Docker group.

If the command fails, check to see if the group exists and create it if necessary:

groupadd docker

The Docker group is almost always created automatically, so it is wise to check if the Docker group exists on Debian.

  1. Open the terminal on your Debian system by pressing the 'Ctrl + Alt + T' keys on your keyboard or by searching for 'Terminal' in the applications menu.

  2. In the terminal run the command 'cat /etc/group | grep 'docker' ' to view the list of all the groups on your system.

Using Docker on Debian

Docker on Debian allows for easily pulling images from Docker Hub, a central repository for developers to share and distribute their images. To pull an image from Docker Hub, use the 'docker pull' command, followed by the image name and the desired tag:

docker pull nginx:latest

After the image is pulled, use it to launch a container, a running instance of an image. To run a container, use the 'docker run' command, followed by the image name:

docker run -d nginx

To stop a container, use the 'docker stop' command, followed by the container ID or name:

docker stop nginx

Note! To find out the container ID, use the 'docker ps' command:

docker ps -q

This command with flag '-q' will only display IDs of all running containers.

To remove containers, use the 'docker rm' command, followed by the container ID or name:

docker rm nginx

Note: Before removing a container it must be stopped.

Note: The docker run command must specify an image reference to create the container from. The image reference is the name and version of the image. Use the image reference to create or run a container based on an image.

docker run nginx:latest

An image tag after : is the image version, in this case the latest one. Use the tag to run a container from a specific version of an image.

Creating and building custom Docker images

Docker on Debian allows for the creation of personalized images tailored to the specific requirements of an application. Dockerfile must be created with instructions for Docker to use while constructing the image. The image foundation is typically Debian, which is customized with necessary configurations and dependencies. This involves package installation, defining environment variables, and transferring files into the image.

After finishing your Dockerfile, use the following command to generate the image (run command below in the same directory where Dockerfile is located):

docker build

A new image will be created based on Dockerfile instructions. Each instruction in the Dockerfile stands for a new layer in the image to quickly restore it in case of any changes.

Ready image can be tagged with a version number or any other identifier if there are multiple versions of an application being used on different environments. Tagged image can be pushed to a Docker Hub to make it available for others.

Networking with Docker on Debian

After you install Docker, using it for networking on Debian facilitates smooth communication between containers and the host machine. Containers are able to seamlessly communicate with each other, using their designated names. Also containers may be connected to multiple networks for even more complex communication configurations.

Docker networking can expose container ports to the host machine for external access to them, making it possible for applications running within to be accessed from the outside. Use the -p flag when running a container, as it maps a port on the host machine to a port on the container:

docker run --name my-nginx -p 8080:80 nginx
  • --name my-nginx sets the container name to my-nginx

  • -p 8080:80 tells Docker to forward port 80 from the container to port 8080 of the host machine

Effective management of Docker networks involves monitoring network traffic, identifying and resolving network issues, and implementing necessary security protocols. Docker Compose and Docker Swarm tools simplify the process of managing and scaling applications across multiple containers and networks.

Data Management with Docker Volumes

Docker volumes are responsible for managing data and its storage in a separate location from the container. This allows the container to access and utilize the data. Volumes act as external directories, separate from the container's file system, that can be accessed and utilized by the container. The data stored in a volume will remain even if the container is stopped or removed, making it particularly valuable for databases that require persistent storage even when the container is not running.

Docker volumes can be generated by the Docker command line interface or with Dockerfile. Each volume is assigned a name and is stored in a designated location on the host system. This approach to managing volumes makes them easier to identify and access. Volumes can be shared among multiple containers to access data by different containers.

Mounting volumes to containers involves linking volumes to containers, enabling them to access and utilize the data stored inside. This can be done dynamically through the Docker CLI during runtime or by specifying it in Dockerfile. This allows for data to be exchanged between the container and the host machine, as well as among multiple containers.

Mastering Docker on Debian

To become a proficient user of Docker on Debian, it is essential to explore its advanced options, such as orchestration for effectively managing and coordinating multiple containers. The use of Docker Swarm, the native orchestration tool, is fully compatible with Debian and enables the creation of highly available and scalable applications. Docker Swarm on Debian allows for the deployment and management of containers across multiple hosts, making it a valuable asset in production environments.

Docker is able to create lightweight and disposable environments, making it easier to set up new machines for development. It is also useful for establishing a consistent and reproducible environment for continuous integration and deployment. In addition, the extensive selection of packages offered by Debian allows users to effortlessly construct customized images tailored to their specific requirements.


Docker is an impressive utility that enables the creation, deployment, and management of applications on Debian. Its versatility, scalability, and effectiveness make it an invaluable resource for developers, system administrators, and businesses alike. With its ever-evolving capabilities and endless potential, we have provided a guide on how to install Docker on Debian. By incorporating Docker into your workflow, you can streamline and optimize your development and deployment process.

The potential of Docker on Debian is constantly expanding as it continues to evolve. One particularly valuable advantage for developers is its ability to create a uniform testing and deployment environment. Through Docker, applications and their necessary components can be bundled into a single image, simplifying the process of reproducing and testing on various systems. This promotes better collaboration among team members, as everyone is operating within the same environment.

By the way, Hostman offers cloud servers starting from just $4 per month, in case you were wondering.