Tutoriel Docker

Docker est un moteur de conteneur d'applications open source, basé surle langage Goet est open source sous la licence Apache 2.0.

Docker permet aux développeurs d'empaqueter leurs applications et dépendances dans un conteneur léger et portable, qui peut ensuite être distribué vers n'importe quelle machine Linux courante, permettant également la virtualisation.

Les conteneurs utilisent pleinement un mécanisme de sandbox, sans interfaces entre eux (similaire aux applications iPhone). Plus important encore, les conteneurs ont une surcharge de performance extrêmement faible.

Après la version 17.03, Docker est divisé en CE (Community Edition) et EE (Enterprise Edition). Nous pouvons simplement utiliser la Community Edition.


À qui s'adresse ce tutoriel ?

Ce tutoriel s'adresse aux ingénieurs d'exploitation et aux développeurs back-end. Grâce à ce tutoriel, vous pouvez apprendre à utiliser Docker étape par étape.


Connaissances requises avant de lire ce tutoriel

Avant de lire ce tutoriel, vous devez maîtriser les commandes Linux courantes. Vous pouvez utiliser leTutoriel Linuxde ce site pour apprendre les commandes associées.


Scénarios d'application de Docker

  • Architecture de microservices :Chaque service est conteneurisé indépendamment, ce qui facilite la gestion et la mise à l'échelle.

  • Pipeline CI/CD :S'intègre à Jenkins/GitLab CI pour permettre des builds et des tests automatisés.

  • Environnement de développement standardisé :Les nouveaux membres peuvent lancer l'ensemble complet des services dépendants (tels que bases de données, files d'attente de messages) en un clic.

  • Fondamentaux du cloud-native :Les outils d'orchestration tels que Kubernetes gèrent des clusters de conteneurs basés sur Docker.


Avantages principaux

  • Cohérence multiplateforme :Résout le problème « ça marche sur ma machine », garantissant la cohérence entre les environnements de développement, de test et de production.
  • Efficacité des ressources :Les conteneurs partagent directement le noyau de l'hôte, ce qui élimine le besoin de virtualiser l'ensemble du système d'exploitation, économisant ainsi de la mémoire et du CPU.
  • Déploiement rapide :Les conteneurs démarrent en quelques secondes, ce qui permet une mise à l'échelle et une réduction automatisées.
  • Isolation :Chaque conteneur dispose de son propre système de fichiers, réseau et espace de processus indépendants.

Concepts fondamentaux

  • Conteneur :Instances d'exécution légères, contenant le code de l'application, l'environnement d'exécution et les bibliothèques de dépendances. Créés à partir d'images, isolés des autres conteneurs, partageant le noyau du système d'exploitation hôte (plus efficaces que les machines virtuelles).
  • Image :Modèle en lecture seule, définissant l'environnement d'exécution du conteneur (tel que le système d'exploitation, la configuration logicielle, etc.). Utilise un stockage en couches (Layer) pour optimiser l'espace et la vitesse de construction.
  • Dockerfile :Un fichier texte décrivant comment construire automatiquement des images (par exemple, spécifier une image de base, installer des logiciels, copier des fichiers, etc.).
  • Registry :Une plateforme de stockage et de distribution d'images, telle que Docker Hub (dépôt public officiel) ou des dépôts privés (tels que Harbor).

Commandes de base

Exemple

# Récupérer l'image (par exemple, image Nginx officielle)
docker pull nginx

# Lancer le conteneur (-d exécuter en arrière-plan, -p mapper les ports)
docker run -d -p 80:80 nginx

# Lister les conteneurs en cours d'exécution
docker ps

# Construire l'image (à partir du Dockerfile dans le répertoire courant)
docker build -t my-app .

# Entrer dans le conteneur
docker exec -it <ID du conteneur> /bin/bash

Liens connexes

Site officiel de Docker :https://www.docker.com

Code source Docker sur GitHub :https://github.com/docker

autres extensions