Maison  >  Article  >  développement back-end  >  Analyse super détaillée des principes et fonctions de php docker

Analyse super détaillée des principes et fonctions de php docker

王林
王林avant
2019-09-04 11:43:293766parcourir

Analyse super détaillée des principes et fonctions de php docker

Résumé en une phrase  :

Docker est le principe du conteneur : comme l'isolation : Docker fournit un ensemble de méthodes pour l'empaquetage, la transmission et la transmission des applications. déploiement. Afin que vous puissiez mieux exécuter n'importe quelle application à l'intérieur du conteneur. Docker est un conteneur d'applications portable

Docker crée rapidement divers environnements : tels qu'un serveur de site Web Node.js, un serveur API, une base de données, etc.

1 Quels sont les avantages de Docker. ?

1-1. Créez rapidement un environnement d'isolation : différentes applications peuvent avoir des environnements d'application différents. Par exemple, les sites Web développés par .net et les sites Web développés par php reposent sur des logiciels différents. trust on est installé sur un serveur, le débogage prendra beaucoup de temps, ce qui est très gênant et provoquera des conflits. Par exemple, il existe un conflit entre les ports d'accès IIS et Apache. À ce stade, vous devez isoler le site Web développé par .net et le site Web développé par PHP. De manière générale, nous pouvons créer différentes machines virtuelles sur le serveur et placer différentes applications sur différentes machines virtuelles, mais la surcharge de la machine virtuelle est relativement élevée. Docker peut réaliser la fonction d'environnement d'application d'isolation de machine virtuelle, et la surcharge est inférieure à celle des machines virtuelles. Une petite taille signifie économiser de l'argent.

1-2. Encapsulez l'environnement de développement et résolvez le problème de version de l'environnement : lorsque vous développez le logiciel, vous utilisez Ubuntu, mais la gestion de l'exploitation et de la maintenance est centos. L'exploitation et la maintenance transfèrent votre logiciel depuis le. environnement de développement vers Dans l'environnement de production, vous rencontrerez certains problèmes lors de la conversion d'Ubuntu en CentOS. Par exemple, il existe une version spéciale de la base de données qui n'est prise en charge que par Ubuntu mais pas par CentOS. Pendant le processus de transfert, l'exploitation et la maintenance doivent être effectuées. trouver des moyens de résoudre de tels problèmes. Si vous disposez de Docker à ce moment-là, vous pouvez directement encapsuler et transférer l'environnement de développement vers l'exploitation et la maintenance, et l'exploitation et la maintenance peuvent déployer directement le docker que vous lui avez donné. Et c’est rapide à déployer.

1-3. Utilisation de la mémoire : En termes de charge du serveur, si vous ouvrez une machine virtuelle seule, la machine virtuelle occupera de la mémoire libre. Si Docker est déployé, cette mémoire sera utilisée.

2. Qu'est-ce que Docker ? Que peut faire Docker ?

L'idée de Docker vient des conteneurs. Quels problèmes les conteneurs résolvent-ils ? Sur un grand navire, la cargaison peut être soigneusement rangée. Et toutes sortes de marchandises sont standardisées par conteneurs, et les conteneurs ne s'influenceront pas les uns les autres. Ensuite, je n’ai pas besoin d’un navire spécialement conçu pour transporter des fruits ni d’un navire spécialement conçu pour transporter des produits chimiques. Tant que ces marchandises sont bien emballées dans le conteneur, je peux les transporter toutes sur un grand navire.

Docker a un concept similaire. Le cloud computing est désormais populaire et le cloud computing est comme un gros cargo. Docker est un conteneur.

2-1. Différentes applications peuvent avoir des environnements d'application différents. Par exemple, les sites Web développés par .net et les sites Web développés par php reposent sur des logiciels différents si le logiciel dont ils dépendent est installé dans un seul. Il est temps de déboguer sur le serveur, ce qui est très gênant et peut provoquer certains conflits. Par exemple, il existe un conflit entre les ports d'accès IIS et Apache. À ce stade, vous devez isoler le site Web développé par .net et le site Web développé par PHP. De manière générale, nous pouvons créer différentes machines virtuelles sur le serveur et placer différentes applications sur différentes machines virtuelles, mais la surcharge de la machine virtuelle est relativement élevée. Docker peut réaliser la fonction d'environnement d'application d'isolation de machine virtuelle, et la surcharge est inférieure à celle des machines virtuelles. Une petite taille signifie économiser de l'argent.

2-2. Lorsque vous développez un logiciel, vous utilisez Ubuntu, mais la gestion de l'exploitation et de la maintenance est centos. L'exploitation et la maintenance rencontreront quelques problèmes lors du transfert de votre logiciel de l'environnement de développement vers l'environnement de production. convertir Ubuntu en CentOS, par exemple : il existe une version spéciale de la base de données qui n'est prise en charge que par Ubuntu mais pas CentOS. Pendant le processus de transfert, l'exploitation et la maintenance doivent trouver des moyens de résoudre ces problèmes. Si vous disposez de Docker à ce moment-là, vous pouvez directement encapsuler et transférer l'environnement de développement vers l'exploitation et la maintenance, et l'exploitation et la maintenance peuvent déployer directement le docker que vous lui avez donné. Et c’est rapide à déployer.

2-3. En termes de charge du serveur, si vous ouvrez une machine virtuelle seule, la machine virtuelle occupera de la mémoire libre. Si docker est déployé, cette mémoire sera utilisée.

En bref, docker, c'est le principe du conteneur.

3. À quoi les développeurs peuvent-ils utiliser Docker ?

Docker a attiré beaucoup d'attention de nos jours, et beaucoup de gens ont du mal à être à la hauteur de sa réputation car ils ne comprennent toujours pas quelle est la relation entre Docker et les développeurs ordinaires. De nombreux développeurs estiment que Docker est loin d'eux. Docker est un outil dans l'environnement de production et n'a rien à voir avec eux. Il m'a également fallu beaucoup de temps pour comprendre comment utiliser Docker dans mon propre développement en tant que développeur ordinaire. Franchement, je suis encore en train d'apprendre.

Cet article fournit une liste de cas d'utilisation de Docker. J'espère qu'il pourra mieux vous aider à comprendre Docker et déclencher votre réflexion. Cet article décrit uniquement l'application quotidienne de Docker par des développeurs ordinaires et ne fournit pas de solution complète.

Avant de présenter les cas d'utilisation, j'espère que vous vous souvenez de cette phrase : "Docker est un conteneur d'applications portable." Vous n'avez pas besoin de savoir ce que Docker entend par « conteneur portable », mais vous devez savoir que Docker peut apporter d'énormes améliorations d'efficacité dans la vie quotidienne.

Lorsque vous devez exécuter votre propre application dans un conteneur (bien sûr, il peut s'agir de n'importe quelle application), Docker fournit une image système de base comme système de base pour exécuter l'application. En d’autres termes, n’importe quelle application sur un système Linux peut s’exécuter dans Docker.

Puis-je exécuter la base de données dans Docker ? bien sûr.
Puis-je exécuter un serveur de site Web Node.js dans Docker ? bien sûr.
Puis-je exécuter le serveur API dans Docker ? bien sûr.

Docker ne se soucie pas de ce qu'est ou de ce que fait votre application. Docker fournit un ensemble de méthodes d'empaquetage, de transmission et de déploiement d'applications afin que vous puissiez mieux exécuter n'importe quelle application dans un conteneur.

4. Essayez de nouveaux logiciels

Pour les développeurs, toutes sortes de nouvelles technologies qui naissent chaque jour doivent être essayées. Il est peu probable que l'auteur configure l'environnement et effectue des tests pour eux un par un. Le temps est précieux, et grâce à Docker, il nous est possible de paramétrer l'environnement en une ou quelques commandes. Docker dispose d'une méthode infaillible pour obtenir un logiciel. L'arrière-plan de Docker obtiendra automatiquement l'image de l'environnement et exécutera l'environnement.
Docker n'est pas seulement utilisé pour la construction d'environnements de nouvelles technologies. Si vous souhaitez exécuter rapidement une base de données MySQL ou une file d'attente de messages Redis sur votre ordinateur portable, vous pouvez le faire très facilement en utilisant Docker. Par exemple, Docker n'a besoin que d'une seule commande pour exécuter la base de données MySQL :

docker run -d -p 3306:3306 tutum/mysql。

Note du traducteur : bien que la base de données MySQL puisse être installée très rapidement à l'aide de commandes, lorsque la technologie la plus récente ou une technologie très complexe est utilisée, l'utilisation de Docker sera être un très bon choix, comme Gitlab. Il faut environ une journée à un utilisateur moyen pour créer la plate-forme Gitlab, mais Docker ne nécessite qu'une seule commande.

5. Apprenez les scripts Linux

Bien sûr, cette raison peut sembler étrange, mais pour ceux qui ne sont pas familiers avec le système d'exploitation Linux et Scripts Shell C'est en effet une bonne opportunité pour les gens. Même si cet article ne parle pas de Linux, l’importance de Linux reste évidente. Si vous utilisez Windows, laissez-moi vous donner une suggestion : louez un hébergeur cloud auprès d'un fournisseur d'hébergement cloud : je recommande d'utiliser un hébergeur cloud du système CoreOS. Bien que cela ne fasse pas de vous un professionnel de l'exploitation et de la maintenance de Linux, cela vous permettra d'apprendre rapidement les bases de Linux, de tomber amoureux des opérations en ligne de commande et de commencer lentement à vous familiariser et à apprécier Linux.

6. Meilleure utilisation des ressources

La granularité des machines virtuelles est "machines virtualisées", tandis que la granularité de Docker est "application restreinte", en comparaison, Docker prend moins de mémoire et est plus léger.
Pour moi, c'est un avantage de Docker : comme j'exécute souvent plusieurs applications Docker sur mon ordinateur, l'utilisation de Docker est plus simple et plus pratique que l'utilisation d'une machine virtuelle, a une granularité plus fine et peut suivre en continu l'état du conteneur. .

7. Personnaliser pour les microservices

Si vous avez prêté attention à l'actualité technologique, alors vous devriez avoir entendu parler du concept de « Microservices ». Docker peut être bien combiné avec des microservices. Conceptuellement, un microservice est un conteneur qui fournit une partie d'un ensemble complet de fonctionnalités d'application, et Docker peut servir de conteneur de microservices pendant le développement, les tests et le déploiement. Même les environnements de production peuvent déployer des microservices dans Docker.

8. Portage entre fournisseurs de services cloud

La plupart des fournisseurs d'hébergement cloud prennent déjà entièrement en charge Docker. Pour les développeurs, cela signifie que vous pouvez facilement changer de fournisseur de services cloud. Bien entendu, vous pouvez également facilement déplacer votre environnement de développement local vers un hôte cloud. Il n'est pas nécessaire de configurer l'environnement en cours d'exécution localement et de le configurer également sur l'hôte cloud. configurer l'environnement d'exécution une fois. Un déploiement complet de Docker (Docker ici et Docker là) en tant qu'environnement d'exploitation standard peut réduire considérablement la charge de travail et générer des bugs lorsque l'application est en ligne.

9.API

L'API est le ciment entre les applications. Un développeur qualifié doit avoir utilisé des API REST fournies par d'autres, ou développé lui-même des API REST. Il convient de souligner que qu'il s'agisse du client ou du fournisseur d'API, avant le développement, un ensemble d'interfaces API publiques doivent être définies et documentées avant le codage. Si le serveur et le client sont développés conjointement, le serveur implémentera généralement d'abord une interface API capable de renvoyer une chaîne fixe, puis implémentera lentement les fonctions API lors du développement futur.
Bien que certaines personnes puissent penser que Docker a été abusé ici et que vous pouvez utiliser des fichiers comme sample.json pour implémenter des API virtuelles, il existe un exemple ci-dessous qui peut mieux résoudre le problème de l'API lors du développement front-end et back- mettre fin à la séparation.
Pour mieux expliquer ce que je veux dire, laissez-moi vous donner un exemple : JSON Server, une API REST pour fournir des données JSON. Quiconque a utilisé ce conteneur sait que puisqu'il existe un serveur Docker JSON si facile à utiliser, nous n'avons aucune raison de ne pas utiliser Docker.

Pour plus de questions connexes, veuillez visiter le site Web PHP chinois : Tutoriel vidéo PHP

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer