Cet article vous apporte des connaissances pertinentes sur Docker. Il vous présente principalement ce que sont Docker Compose et Dockerfile, et quelles sont les différences entre eux. Les amis intéressés peuvent y jeter un œil, j'espère que cela sera utile à tout le monde.
1. La différence entre Docker Compose et Dockerfile
Docker Compose et Dockerfile sont tous deux des outils de création et de gestion de conteneurs Docker, mais ils ont des fonctions et des méthodes d'utilisation différentes.
Dockerfile est un fichier texte utilisé pour définir les règles de construction d'une image Docker. Il contient une série d'instructions permettant de spécifier le système d'exploitation, l'environnement logiciel, l'application, la copie de fichier et d'autres informations lorsque le conteneur est en cours d'exécution. Grâce à Dockerfile, vous pouvez créer une image Docker personnalisée afin que l'image puisse s'exécuter sur n'importe quel hôte prenant en charge Docker.
Docker Compose est un outil permettant de définir et d'exécuter plusieurs conteneurs Docker. Avec Docker Compose, vous pouvez utiliser des fichiers YAML pour décrire les services, le réseau, le stockage et d'autres ressources de l'application, et utiliser une seule commande pour démarrer, arrêter, redémarrer et gérer l'ensemble de l'application. Dans un fichier de configuration Docker Compose, plusieurs conteneurs Docker peuvent être définis, chaque conteneur peut utiliser une image Docker personnalisée et les dépendances et méthodes de communication entre les conteneurs peuvent être spécifiées.
Par conséquent, Dockerfile est davantage utilisé pour créer et personnaliser des images Docker, tandis que Docker Compose est davantage utilisé pour gérer plusieurs conteneurs Docker afin qu'ils puissent travailler ensemble pour créer une application complète.
2. Par exemple
Supposons que vous souhaitiez exécuter une application Web PHP sur un système CentOS 7 et utiliser Nginx comme serveur Web. Vous pouvez utiliser Dockerfile et Docker Compose pour y parvenir.
À l'aide d'un Dockerfile, vous pouvez créer une image PHP+Nginx personnalisée, par exemple :
FROM php:7.4-fpm RUN apt-get update && apt-get install -y nginx COPY nginx.conf /etc/nginx/nginx.conf WORKDIR /var/www/html COPY src/ /var/www/html/ EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Ce Dockerfile est basé sur l'image officielle PHP 7.4-fpm, installe Nginx et copie le code de l'application dans le fichier /var/www du conteneur. /répertoire html. L'image mappe également le port 80 du conteneur à l'hôte afin que l'application soit accessible depuis l'hôte via un navigateur.
À l'aide de Docker Compose, vous pouvez définir un fichier YAML pour démarrer deux conteneurs PHP et Nginx en même temps et les connecter au même réseau Docker. Par exemple :
`version: '3' services: php: image: php:7.4-fpm volumes: - ./src:/var/www/html networks: - my-network nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf networks: - my-network networks: my-network:`
Ce fichier Docker Compose définit deux services : l'un est basé sur l'image officielle PHP 7.4-fpm et l'autre est basé sur l'image officielle Nginx. Ils montent tous deux le code de l'application locale et les fichiers de configuration Nginx et les connectent à un réseau Docker appelé my-network. De plus, le port 80 du conteneur Nginx est également mappé au port 80 de l'hôte.
En général, Dockerfile est meilleur pour créer et personnaliser une seule image, tandis que Docker Compose est meilleur pour gérer plusieurs conteneurs et les combiner ensemble pour créer une application complète. Dans cet exemple, vous pouvez utiliser Dockerfile pour créer une image PHP+Nginx personnalisée et utiliser Docker Compose pour démarrer les conteneurs PHP et Nginx en même temps et les connecter au même réseau Docker.
Apprentissage recommandé : Tutoriel vidéo Docker, Tutoriel d'utilisation de Docker
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!