- Dockerfile_docker_compose
- 16370
|
Différences entre dockerfile et docker-compose La première chose que vous devez savoir sur docker est qu'il est divisé en construction d'image et en lancement de conteneur.
Construction d'une image : Création d'une image qui contient l'environnement, le code du programme, etc. nécessaire pour l'installer et l'exécuter. Ce processus s'effectue à l'aide d'un fichier docker.
Démarrage du conteneur : les conteneurs sont finalement exécutés en tirant l'image construite et en démarrant le service par le biais d'une série de commandes d'exécution (par exemple, mappage de port, montage de données externes, variables d'environnement, etc.) Pour un seul conteneur, cela peut être exécuté via docker run.
Pour plusieurs conteneurs (par exemple, pour l'orchestration de services), vous pouvez utiliser docker-compose, qui facilite l'exécution de plusieurs conteneurs en tant que service (ou d'un seul d'entre eux) et permet de faire évoluer le service.
Voici un bref résumé :
1. dockerfile : construire l'image ;
2. docker run : démarrer le conteneur ;
3. docker-compose : démarrer le service ;
Commençons par le commencement. Si vous n'utilisez pas docker, comment construire wordpress ? Il faut d'abord trouver un serveur, en supposant que son système d'exploitation soit Ubuntu, puis suivre la documentation pas à pas pour exécuter des commandes et écrire des configurations, n'est-ce pas ? Qu'en est-il de l'utilisation de Docker ? Il suffit de trouver un serveur, peu importe le système d'exploitation, tant qu'il supporte docker, docker run ubuntu, docker va tirer la dernière image Ubuntu de la source officielle, vous pouvez y penser comme si vous ouvriez une machine virtuelle Ubuntu, et ensuite étape par étape pour l'installer, la même chose que ci-dessus.
Cependant, il y a un inconvénient important à installer de cette façon : une fois que le conteneur est supprimé, tout le travail que vous avez fait est perdu. Bien sûr, vous pouvez utiliser docker commit pour le sauvegarder en tant qu'image, afin de pouvoir le réutiliser.
Mais les miroirs sont généralement assez volumineux, et si vous ne faites que les partager, les gens ne savent pas ce qu'ils contiennent, donc ces problèmes ne sont pas propices au partage et à la réutilisation. Une solution intuitive consiste à écrire un script pour enregistrer le processus d'installation, de sorte que lorsque vous l'installez à nouveau, vous pouvez simplement exécuter le script. Dockerfile est un script de ce type, qui enregistre le processus de création d'une image. Avec Dockerfile, vous pouvez créer une image en exécutant docker build . Vous pouvez créer une image en exécutant docker build . Dockerfile est juste un fichier texte, il est donc facile de le modifier.
Maintenant que vous avez une image de wordpress, tout ce qu'il vous reste à faire est de lancer docker run pour que wordpress fonctionne.
S'il ne s'agissait que de wordpress, ce serait suffisant. Mais dans de nombreux cas, vous avez besoin de plusieurs miroirs pour démarrer un service, comme nginx sur le frontend, mysql sur la base de données, les services de messagerie, etc. Plus communément, nginx, mysql, smtp sont chacun mis en miroir, et ensuite ces miroirs fonctionnent ensemble pour servir un projet. docker-compose résout ce problème. Les informations concernant les miroirs dont vous avez besoin pour votre projet, comment configurer chacun d'entre eux, quels volumes monter, etc. sont contenues dans docker-compose.yml. Pour démarrer un service, il suffit de docker-compose up, et pour l'arrêter, il suffit de docker-compose stop/down.
En résumé, Dockerfile enregistre la construction d'une seule image, et docker-compse.yml enregistre la construction d'un projet (généralement plusieurs images).
Vous avez dit que certains tutoriels utilisent dockerfile+docker-compose, parce que docker-compose.yml ne contient pas d'informations sur la construction des images. Si une image est extraite du registre docker, alors Dockerfile n'est pas nécessaire ; si une image doit être construite, alors vous devez fournir le fichier Dockerfile.
docker-compose permet d'orchestrer les conteneurs. Par exemple, vous avez une image php, une image mysql et une image nginx. Si vous n'avez pas docker-compose, alors à chaque démarrage, vous devez frapper les paramètres de démarrage de chaque conteneur, les variables d'environnement, le nommage des conteneurs, la spécification des paramètres de liaison pour les différents conteneurs, et ainsi de suite, une série d'opérations, ce qui est assez fastidieux. Mais avec docker-composer, vous pouvez écrire ces commandes dans le fichier docker-composer.yml, et ensuite, à chaque fois que vous démarrez l'ensemble de l'environnement (y compris trois conteneurs), vous n'avez qu'à lancer une commande docker-composer up.
Le fichier docker sert à construire l'image à partir de zéro. Il contient l'environnement, le code du programme, etc. nécessaire pour l'installer et l'exécuter. Ceci est fait en utilisant un dockerfile. dockerfile - préparé pour la commande docker build afin de créer une image autonome, qui peut également être utilisée pour les constructions en direct dans docker-compose. docker-compose.yml - un script pour docker-compose qui vous permet de gérer plusieurs conteneurs en même temps, y compris la relation entre eux, l'utilisation de l'image officielle ou la construction de celle-ci, la définition des différents ports réseau, la définition de l'espace de stockage, et ainsi de suite. |
Previous: Échec de l'enregistrement de l'URL "http://xx/" ; pour le site "SITE NAME" ;...下一篇:docker在 windows系统下存储镜像位置
|