Wiki - Docker

Wiki article - Docker

Table of Contents

Docker

Docker is an open-source containerization platform that makes it possible to create, deploy, and run applications in isolated containers. Developed by Docker Inc. and first released in 2013, Docker revolutionized the way applications are built, deployed, and managed by packaging them with all their dependencies in standardized containers.

Overview

Docker is an open-source platform that automates the deployment of applications in software containers. A Docker container isolates an application and its dependencies in an isolated environment, ensuring that it will run consistently on any system. This approach eliminates the classic "it works on my machine" problem.

The Moby project, launched in 2017, is an open source project to advance containerization software and the containerization experience. Docker uses a client-server architecture: the Docker daemon (dockerd) manages containers, images, networks, and volumes, while the Docker client (CLI) allows users to interact with the daemon.

History and versions

Docker was initially developed by Solomon Hykes and the dotCloud team (now Docker, Inc.) and was released as open-source in March 2013. Its version 1.0 was released in June 2014. The platform quickly gained popularity, notably thanks to its ease of use and its ability to create reproducible development and production environments.

Evolution and recent versions

Docker has gone through several major versions, including the introduction of Docker Swarm for orchestration, the command-line interface (CLI), and integration with Kubernetes. In 2023, Docker announced a new pricing model and continued to evolve toward cloud and enterprise solutions.

Recent versions of Docker Desktop (such as v4.30.0, 2026) include performance improvements, better integration with development tools, and better support for ARM architectures (such as Apple Silicon). Recent versions of Docker Engine (v25.0, 2026) bring security and performance improvements.

Main features

  • Portability: Docker containers are portable across any system that supports Docker, ensuring consistent execution across environments.

  • Isolation: Each container runs in isolation, with its own resources and dependencies.

  • Lightweight: Containers share the host OS kernel, making them lighter than virtual machines.

  • Automation: Docker makes it possible to automate application deployment via Dockerfiles and composition files (docker-compose).

  • Large ecosystem: Docker Hub, the public registry, provides thousands of official and community images.

System requirements

Docker is available on several platforms:

  • Linux: Distributions based on the Linux kernel (3.10 or higher).

  • Windows: Windows 10/11 Pro, Enterprise, or Education (version 1607 or later) with Hyper-V enabled.

  • macOS: macOS 10.14 or higher (Apple Silicon or Intel).

Minimum system requirements: 2 GB of RAM, 2 processor cores, 4 GB of disk space.

Installation

There are several installation methods depending on the operating system.

On Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

On macOS and Windows

Download Docker Desktop from the official website and install it like a standard application. Docker Desktop includes the Docker daemon, Docker CLI, and Docker Compose.

For Linux, Docker Desktop is also available. Download the appropriate version for your distribution.

Basic configuration

After installation, you can configure Docker to improve security and performance.

# Vérifier la version
docker --version

# Tester l'installation
docker run hello-world

To run Docker without sudo on Linux, add your user to the docker group:

sudo usermod -aG docker $USER
newgrp docker

Usage and main commands

Image management

# Télécharger une image depuis Docker Hub
docker pull ubuntu:latest

# Lister les images locales
docker images

Container management

# Lancer un conteneur à partir d'une image
docker run -d --name mon_conteneur nginx

# Lister les conteneurs actifs
docker ps

# Accéder à un shell dans un conteneur
docker exec -it mon_conteneur bash

Volume and network management

# Créer un volume
docker volume create mon_volume

# Créer un réseau personnalisé
docker network create mon_reseau

Tips and tricks

  • Use Dockerfile to create custom images.

  • Use docker-compose to manage multi-container applications.

  • Regularly clean up unused images and containers with docker system prune -a.

  • For development, use volumes to mount source code.

FAQ

What is the difference between Docker and a virtual machine?

Docker containers share the host kernel, making them lighter and faster to start than virtual machines, which virtualize hardware.

How can I share my Docker images?

You can push your images to Docker Hub or a private registry.

Is Docker free?

Docker offers free versions for personal use and paid plans for businesses.

Resources and useful links