C’est quoi Docker ?
Docker est une plateforme ouverte pour développer et exécuter des applications. Docker vous permet de séparer vos applications de votre infrastructure afin que vous puissiez livrer des logiciels rapidement. Avec Docker, vous pouvez gérer votre infrastructure de la même manière que vous gérez vos applications. En tirant parti des méthodologies Docker pour la livraison, les tests et le déploiement du code, vous pouvez réduire considérablement le délai entre l’écriture du code et son exécution en production.
La plateforme Docker
Docker offre la possibilité de conditionner et d’exécuter une application dans un environnement faiblement isolé appelé conteneur. L’isolation et la sécurité permettent d’exécuter plusieurs conteneurs simultanément sur un hôte donné. Les conteneurs sont légers et contiennent tout ce dont vous avez besoin pour exécuter l’application. Vous n’avez donc pas besoin de vous s’appuyer à ce qui est installé sur l’hôte. Vous pouvez partager des conteneurs pendant que vous travaillez et être sûr que toutes les personnes avec lesquelles vous partagez disposent du même conteneur qui fonctionne de la même manière.
À quoi puis-je utiliser Docker ?
Livraison rapide et cohérente de vos applications
Docker rationalise le cycle de vie du développement en permettant aux développeurs de travailler dans des environnements standardisés à l’aide de conteneurs locaux qui fournissent vos applications et services. Les conteneurs sont idéals pour les processus d’intégration continue et de livraison continue (CI/CD).
Déploiement et mise à l’échelle réactifs
La plate-forme basée sur des conteneurs de Docker permet des charges de travail hautement portables. Les conteneurs Docker peuvent s’exécuter sur l’ordinateur portable local d’un développeur, sur des machines physiques ou virtuelles dans un centre de données, sur des fournisseurs de cloud ou dans une combinaison d’environnements.
La portabilité et la légèreté de Docker facilitent également la gestion dynamique des charges de travail, en augmentant ou en supprimant les applications et les services selon les besoins de l’entreprise, en temps quasi réel.
Exécution d’un plus grand nombre de charges de travail sur la même machine
Docker est léger et rapide. Il constitue une alternative viable et rentable aux machines virtuelles basées sur un hyperviseur, afin que vous puissiez utiliser davantage la capacité de votre serveur pour atteindre vos objectifs commerciaux. Docker est parfait pour les environnements haute densité et pour les déploiements de petite et moyenne taille où vous devez faire plus avec moins de ressources.
La technologie sous-jacente
Docker est écrit avec le langage de programmation Go et profite de plusieurs fonctionnalités du noyau Linux pour offrir ses fonctionnalités. Docker utilise une technologie appelée namespaces pour fournir un espace de travail isolé appelé conteneur. Lorsque vous exécutez un conteneur, Docker crée un ensemble de namespaces (espaces de noms) pour ce conteneur.
Ces namespaces fournissent une couche d’isolation. Chaque aspect d’un conteneur s’exécute dans un espace de noms distinct et son accès est limité par rapport ce namespace.
Commandes Docker de base
>> docker --version # Vérifiez la version de Docker. >> docker info # Afficher des informations sur le système. >> docker --help # Obtenir de l’aide et liste les commandes. >> docker run IMAGE# Exécute un conteneur à partir d’une image. >> docker pull IMAGE # Télécharger une image à partir d'un registre. >> docker images # Lister les images disponibles. >> docker ps # Lister les conteneurs en cours d’exécution. >> docker ps -a # Lister tous les conteneurs (y compris ceux arrêtés). >> docker stop CONTAINER # Arrêtez un conteneur en cours d'exécution >> docker start CONTAINER # Démarrez un conteneur arrêté. >> docker restart CONTAINER # Redémarrer un conteneur >> docker pause CONTAINER # Suspendre un conteneur en cours d'exécution. >> docker unpause CONTAINER # Reprendre un conteneur en pause. >> docker rm CONTAINER # Retirer un conteneur arrêté >> docker rmi IMAGE # Supprimer une image >> docker search TERM # Rechercher des images sur Docker Hub. >> docker logs CONTAINER # Afficher les logs du conteneur. >> docker exec -it CONTAINER COMMAND # Exécuter une commande dans un conteneur en cours d'exécution. >> docker build -t IMAGE:TAG PATH # Créer une image Docker à partir d'un fichier Docker. >> docker push IMAGE:TAG # Pousser une image vers un registre. >> docker pull IMAGE:TAG # Extraire une image depuis un registre. >> docker commit CONTAINER NEW_IMAGE # Créer une nouvelle image à partir d'un conteneur. >> docker network ls # Lister les réseaux Docker. >> docker volume ls # Lister les volumes Docker. >> docker version # Afficher les informations sur la version de Docker. >> docker login # Se connecter à un registre Docker. >> docker logout # Se déconnecter à un registre Docker. >> docker run -d IMAGE # Exécutez un conteneur en mode détaché (sans occuper le terminal ouvert par l'utilisateur). >> docker run -p HOST_PORT:CONTAINER_PORT IMAGE# Mapper les ports. >> docker run -v HOST_DIR:CONTAINER_DIR IMAGE# Monter les volumes. >> docker stats # Afficher les statistiques d'utilisation des ressources du conteneur. >> docker top CONTAINER # Afficher les processus en cours d'exécution dans un conteneur. >> docker inspect CONTAINER/IMAGE # Afficher des informations détaillées. >> docker events # Surveiller les événements Docker. >> docker rename OLD_NAME NEW_NAME # Renommez un conteneur. >> docker cp CONTAINER:SRC_PATH DEST_PATH # Copier des fichiers entre un conteneur et le système de fichiers local. >> docker-compose up Démarrez les services définis dans un fichier docker-compose.yml. >> docker-compose down # Arrêtez et supprimez les conteneurs définis dans un fichier docker-compose.yml. >> docker-compose ps # Lister les conteneurs gérés par Docker Compose. >> docker-compose logs # Afficher les journaux des services gérés par Docker Compose. >> docker system df # Afficher l'utilisation du disque. >> docker system prune# Supprimer tous les conteneurs arrêtés, les images en suspens et les réseaux et volumes inutilisés. >> docker system prune -a # Supprimer tous les conteneurs, images, réseaux et volumes.