Installation et exécution de conteneurs Docker sur Ubuntu

DockerBeginner
Pratiquer maintenant

Introduction

Ce tutoriel Docker complet fournit aux développeurs et aux administrateurs système les connaissances essentielles pour mettre en œuvre la technologie de conteneurisation. En couvrant les concepts fondamentaux de Docker, les procédures d'installation et des exemples pratiques, les apprenants acquerront des compétences pratiques dans le déploiement logiciel moderne et les techniques de virtualisation.

Docker : Les Fondamentaux

Introduction aux Fondamentaux de Docker

Docker est une puissante technologie de conteneurisation qui révolutionne le déploiement logiciel et la virtualisation d'applications. Elle permet aux développeurs d'emballer les applications avec toutes leurs dépendances dans des unités standardisées appelées conteneurs.

Concepts Fondamentaux de la Technologie de Conteneurisation

graph LR
    A[Image Docker] --> B[Conteneur]
    B --> C[Déploiement d'Application]
    B --> D[Isolation]
Concept Description
Image Docker Paquet exécutable léger et autonome
Conteneur Instance exécutable d'une image
Dockerfile Script définissant la configuration de l'image

Architecture de Base de Docker

Les conteneurs fournissent une virtualisation légère en partageant le noyau du système hôte tout en maintenant l'isolation des applications. Cette approche diffère des machines virtuelles traditionnelles.

Installation sous Ubuntu 22.04

## Mettre à jour l'index des paquets
sudo apt update

## Installer les dépendances
sudo apt install apt-transport-https ca-certificates curl software-properties-common

## Ajouter la clé GPG de Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

## Configurer le dépôt
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

## Installer Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Premier Exemple de Conteneur Docker

## Télécharger l'image Ubuntu
docker pull ubuntu:latest

## Lancer un conteneur interactif
docker run -it ubuntu:latest /bin/bash

## À l'intérieur du conteneur
apt update
apt install nginx -y
exit

Configuration de l'Environnement Docker

Préparation d'Ubuntu 22.04 pour l'Installation de Docker

graph LR
    A[Mise à jour du système] --> B[Installation des dépendances]
    B --> C[Configuration du dépôt Docker]
    C --> D[Installation du moteur Docker]
    D --> E[Configuration de Docker]

Configuration requise

Exigence Spécification
OS Ubuntu 22.04 LTS
Architecture 64 bits
Noyau 5.10+
RAM Minimum 2 Go

Script d'installation complet de Docker

## Mettre à jour les paquets système
sudo apt update && sudo apt upgrade -y

## Supprimer les paquets conflictuels
sudo apt remove docker docker-engine docker.io containerd runc

## Installer les dépendances nécessaires
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

## Ajouter la clé GPG officielle de Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

## Configurer le dépôt stable
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

## Installer le moteur Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

## Vérifier l'installation
sudo docker --version

Configuration post-installation

## Créer le groupe utilisateur docker
sudo groupadd docker

## Ajouter l'utilisateur courant au groupe docker
sudo usermod -aG docker $USER

## Activer le service Docker
sudo systemctl enable docker.service
sudo systemctl start docker.service

## Vérifier le fonctionnement de Docker
docker run hello-world

Installation de Docker Compose

## Télécharger Docker Compose
sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose

## Appliquer les permissions exécutables
sudo chmod +x /usr/local/bin/docker-compose

## Vérifier l'installation
docker-compose --version

Gestion des Conteneurs

Vue d'ensemble du Cycle de Vie des Conteneurs

graph LR
    A[Téléchargement de l'image] --> B[Création du conteneur]
    B --> C[Démarrage du conteneur]
    C --> D[Conteneur en cours d'exécution]
    D --> E[Arrêt du conteneur]
    E --> F[Suppression du conteneur]

Commandes de Base Docker pour les Conteneurs

Commande Fonction
docker run Créer et démarrer un conteneur
docker ps Lister les conteneurs en cours d'exécution
docker stop Arrêter un conteneur en cours d'exécution
docker rm Supprimer un conteneur
docker exec Exécuter une commande dans un conteneur

Création et Gestion des Conteneurs

## Télécharger l'image Ubuntu
docker pull ubuntu:latest

## Lancer un conteneur interactif
docker run -it --name my-ubuntu ubuntu:latest /bin/bash

## Lister tous les conteneurs
docker ps -a

## Démarrer un conteneur arrêté
docker start my-ubuntu

## Arrêter un conteneur en cours d'exécution
docker stop my-ubuntu

## Supprimer un conteneur
docker rm my-ubuntu

Opérations Avancées sur les Conteneurs

## Lancer un conteneur en arrière-plan
docker run -d --name nginx-server nginx:latest

## Mapper un port de conteneur vers l'hôte
docker run -p 8080:80 -d nginx:latest

## Inspecter les détails du conteneur
docker inspect nginx-server

## Afficher les journaux du conteneur
docker logs nginx-server

## Exécuter une commande dans un conteneur en cours d'exécution
docker exec -it nginx-server bash

Gestion des Ressources des Conteneurs

## Limiter les ressources du conteneur
docker run -d \
  --name limited-container \
  --cpus="1" \
  --memory="512m" \
  nginx:latest

## Surveiller l'utilisation des ressources du conteneur
docker stats

Configuration du Réseau des Conteneurs

## Créer un réseau personnalisé
docker network create my-network

## Lancer un conteneur dans un réseau spécifique
docker run --network=my-network -d nginx:latest

Résumé

Docker représente une approche révolutionnaire du déploiement de logiciels, offrant des conteneurs légers et portables qui rationalisent le développement d'applications et la gestion des infrastructures. En maîtrisant les principes fondamentaux de Docker, les processus d'installation et les techniques de gestion des conteneurs, les professionnels peuvent considérablement améliorer leurs capacités de développement et de déploiement de logiciels dans divers environnements informatiques.