En parlant de vitesse, Docker présente de sérieux problèmes de performances lorsqu'il s'exécute sur le système d'exploitation Mac. Ceux-ci sont liés à la façon dont les volumes sont montés et au système de fichiers osxfs sous-jacent.
Docker est un système d'exploitation (ou environnement d'exécution) pour conteneurs. Docker Engine est installé sur chacun des serveurs sur lesquels vous souhaitez exécuter des conteneurs. Il vous fournit un ensemble de commandes simples pour concevoir, démarrer ou arrêter des conteneurs.
Cet outil vous permet de créer et de gérer des applications dans des environnements conteneurisés. Au final, Docker peut supprimer de nombreuses tâches de configuration compliquées et rendre le développement plus facile et plus efficace.
Docker Compose est utilisé pour lancer des applications qui ont besoin de plusieurs conteneurs pour fonctionner, via un fichier YAML. Il est souvent nécessaire qu'une application ait besoin d'exécuter plusieurs conteneurs pour différentes tâches.
Une image Docker, ou image de conteneur, est un fichier exécutable autonome utilisé pour créer un conteneur. Cette image de conteneur contient toutes les bibliothèques, dépendances et fichiers dont le conteneur a besoin pour s'exécuter.
Les images sont créées à partir de fichiers de configuration, nommés “Dockerfile”, qui décrivent exactement ce qui doit être installé sur le système. Un conteneur est l'exécution d'une image : il possède la copie du système de fichiers de l'image, ainsi que la capacité de lancer des processus.
Dans une installation par défaut, les niveaux sont stockés dans C:\ProgramData\docker et répartis dans les répertoires « image » et « windowsfilter ». Vous pouvez changer l'emplacement de stockage des niveaux à l'aide de la configuration docker-root , comme illustré dans la documentation Moteur Docker sur Windows.
Lorsque vous démarrez un conteneur, Docker extraira automatiquement par défaut l'image correspondante du Docker Hub public si elle n'est pas disponible localement. De plus, vous pouvez également créer vos propres images et les pousser vers Docker Hub dans un référentiel public ou privé.
Docker Stack peut être utilisée pour gérer une application multi-services dans votre cluster Swarm. Pour faire simple, vous pouvez considérer que la commande docker service est identique à la commande docker run et que la commande docker stack est comparable à la commande docker-compose.
Utilisation des stacks (équivalent de docker-compose)
Docker-Compose est un outil complémentaire à Docker, qui permet de décrire (dans un fichier YAML) et gérer (en ligne de commande) plusieurs conteneurs comme un ensemble de services inter-connectés.
Solomon Hykes, né à New York en 1983, est un créateur d'entreprises franco-américain, vivant dans la Silicon Valley. Il a initié et popularisé le concept de conteneurs en informatique via la création de Docker.
Si Docker est un conteneur unique, Kubernetes est un outil de gestion simultanée de nombreux conteneurs. Comme Docker (la plateforme, pas l'entreprise), Kubernetes est une plateforme open source, bien qu'elle soit gérée par la Cloud Native Computing Foundation en tant que projet comptant plus de 2 300 contributeurs.
Pour construire le container décrit par le fichier Dockerfile, il suffit de palcer ce fichier dans un répertoire et de lancer la commande docker avec l'option build et l'option -t permettant de spécifier le nom du nouveau container qui par convention est de la forme concepteur/nom_container:version.
Un package logiciel unique, appelé « conteneur », regroupe le code d'une application avec les fichiers de configuration, les bibliothèques et les dépendances requises pour que l'application puisse s'exécuter.
Swarm ou Docker-Swarm est un outil conçu pour enrichir Docker Engine, qui est un moteur d'exécution, et permettre à Docker d'offrir un “mode Swarm”. Ce mode donne la possibilité de créer des clusters de machines exécutants des conteneurs Docker, qui fonctionnent ensemble comme une seule machine.
Les avantages des containers IT
Ainsi, les containers permettent aux développeurs de travailler de manière plus efficace en s'assurant que leur application fonctionne correctement, indépendamment de l'environnement dans lequel il est situé (développement, test, production).
Pour fermer un conteneur, rien de plus simple, il suffit d'utiliser la commande stop suivi du nom ou de l'ID du conteneur. Mais il est possible d'outrepasser ce message d'erreur et de forcer le kill en utilisant l'option -f.
Retirer un conteneur spécifique par son nom
Docker fournit une commande polyvalente docker rm pour supprimer les conteneurs par nom et par ID. Tout d'abord, il est important d'arrêter le conteneur. Docker fournit la commande docker stop pour arrêter un conteneur spécifique.
Ensuite, le meilleur moyen de vérifier si Docker est installé, c'est d'exécuter le container nommé "hello-world". La commande ci-dessous permettra de télécharger l'image de ce container et de l'exécuter. Lorsque ce container sera exécuté, le message "Hello from Docker!" sera retourné dans la console.
Pour l'afficher, utilisez la commande docker images. Enfin, exécutez le nouveau conteneur à l'aide de la commande docker run avec le paramètre --rm qui supprime automatiquement le conteneur une fois la ligne de commande (cmd. exe) arrêtée.
Créer de nouvelles images Docker
Il existe différentes manières de créer une nouvelle image Docker : Appuyez-vous sur l'image parente à l'aide de Dockerfile. Générez-en une depuis le conteneur en cours d'exécution. Créez une nouvelle image de base.
Pour transférer une image locale vers un dépôt Docker standard, vous devez lui ajouter un tag correspondant au nom du dépôt, puis transférer l'image. Si l'immuabilité des tags est activée dans votre dépôt Docker Artifact Registry, un tag doit toujours faire référence au même condensé d'image dans le dépôt.