Heim  >  Artikel  >  Backend-Entwicklung  >  Super detaillierte Analyse der Prinzipien und Funktionen von PHP Docker

Super detaillierte Analyse der Prinzipien und Funktionen von PHP Docker

王林
王林nach vorne
2019-09-04 11:43:293813Durchsuche

Super detaillierte Analyse der Prinzipien und Funktionen von PHP Docker

Zusammenfassung in einem Satz :

Docker ist das Containerprinzip: wie Isolation: Docker bietet eine Reihe von Methoden für die Anwendungsverpackung, -übertragung und -übertragung Bereitstellung Damit Sie jede Anwendung innerhalb des Containers besser ausführen können. Docker ist ein tragbarer Anwendungscontainer

Docker erstellt schnell verschiedene Umgebungen: wie Node.js-Websiteserver, API-Server, Datenbank usw.

1 Was sind die Vorteile von Docker? ?

1-1. Erstellen Sie schnell eine Isolationsumgebung: Verschiedene Anwendungen können beispielsweise unterschiedliche Anwendungsumgebungen haben Wenn Sie sich darauf verlassen, dass es auf einem Server installiert ist, dauert das Debuggen lange, was sehr mühsam ist und einige Konflikte verursachen kann. Beispielsweise besteht ein Konflikt zwischen IIS- und Apache-Zugriffsports. Zu diesem Zeitpunkt müssen Sie die von .net entwickelte Website und die von PHP entwickelte Website isolieren. Im Allgemeinen können wir verschiedene virtuelle Maschinen auf dem Server erstellen und unterschiedliche Anwendungen auf verschiedenen virtuellen Maschinen platzieren, aber der Overhead der virtuellen Maschine ist relativ hoch. Docker kann die Funktion einer Anwendungsumgebung zur Isolierung virtueller Maschinen realisieren, und der Overhead ist geringer als bei virtuellen Maschinen. Geringe Größe bedeutet Geldersparnis.

1-2. Kapseln Sie die Entwicklungsumgebung und lösen Sie das Problem der Umgebungsversion: Wenn Sie die Software entwickeln, verwenden Sie Ubuntu, aber die Betriebs- und Wartungsverwaltung erfolgt über Centos Entwicklungsumgebung In der Produktionsumgebung treten bei der Konvertierung von Ubuntu nach CentOS einige Probleme auf. Beispielsweise gibt es eine spezielle Version der Datenbank, die nur von Ubuntu, nicht aber von CentOS unterstützt wird Wege finden, solche Probleme zu lösen. Wenn Sie zu diesem Zeitpunkt über Docker verfügen, können Sie die Entwicklungsumgebung direkt kapseln und auf Betrieb und Wartung übertragen, und Betrieb und Wartung können den Docker, den Sie ihm gegeben haben, direkt bereitstellen. Und es lässt sich schnell bereitstellen.

1-3. Speicherauslastung: Wenn Sie eine virtuelle Maschine alleine öffnen, belegt die virtuelle Maschine freien Speicher. Wenn Docker bereitgestellt wird, wird dieser Speicher genutzt.

2. Was ist Docker? Was kann Docker?

Die Idee von Docker kommt von Containern. Welche Probleme lösen Container? Auf einem großen Schiff lässt sich die Ladung übersichtlich ordnen. Und alle Arten von Waren werden durch Container standardisiert, und Container beeinflussen sich nicht gegenseitig. Dann brauche ich kein Schiff speziell für den Transport von Früchten und kein Schiff speziell für den Transport von Chemikalien. Solange diese Waren gut im Container verpackt sind, kann ich sie alle auf einem großen Schiff transportieren.

Docker ist ein ähnliches Konzept. Cloud Computing ist mittlerweile beliebt und Cloud Computing ist wie ein großer Frachter. Docker ist ein Container.

2-1. Verschiedene Anwendungen können unterschiedliche Anwendungsumgebungen haben. Beispielsweise benötigen Websites, die von .net entwickelt wurden, und Websites, die von PHP entwickelt wurden, unterschiedliche Software Zeit zum Debuggen auf dem Server, was sehr mühsam ist und zu Konflikten führen kann. Beispielsweise besteht ein Konflikt zwischen IIS- und Apache-Zugriffsports. Zu diesem Zeitpunkt müssen Sie die von .net entwickelte Website und die von PHP entwickelte Website isolieren. Im Allgemeinen können wir verschiedene virtuelle Maschinen auf dem Server erstellen und unterschiedliche Anwendungen auf verschiedenen virtuellen Maschinen platzieren, aber der Overhead der virtuellen Maschine ist relativ hoch. Docker kann die Funktion einer Anwendungsumgebung zur Isolierung virtueller Maschinen realisieren, und der Overhead ist geringer als bei virtuellen Maschinen. Geringe Größe bedeutet Geldersparnis.

2-2. Wenn Sie Software entwickeln, verwenden Sie Ubuntu, aber beim Betrieb und der Wartung treten einige Probleme auf, wenn Sie Ihre Software von der Entwicklungsumgebung in die Produktionsumgebung übertragen Beispielsweise bei der Konvertierung von Ubuntu auf CentOS: Es gibt eine spezielle Version der Datenbank, die nur von Ubuntu, nicht aber von CentOS unterstützt wird. Während des Übertragungsprozesses müssen Betrieb und Wartung Wege finden, solche Probleme zu lösen. Wenn Sie zu diesem Zeitpunkt über Docker verfügen, können Sie die Entwicklungsumgebung direkt kapseln und auf Betrieb und Wartung übertragen, und Betrieb und Wartung können den Docker, den Sie ihm gegeben haben, direkt bereitstellen. Und es lässt sich schnell bereitstellen.

2-3. Wenn Sie eine virtuelle Maschine alleine öffnen, belegt die virtuelle Maschine freien Speicher. Wenn Docker bereitgestellt wird, wird dieser Speicher genutzt.

Kurz gesagt ist Docker das Containerprinzip.

3. Wofür können Entwickler Docker verwenden?

Docker hat heutzutage viel Aufmerksamkeit erregt und vielen Menschen fällt es schwer, seinem Ruf gerecht zu werden, weil sie immer noch nicht verstehen, wie die Beziehung zwischen Docker und gewöhnlichen Entwicklern ist. Viele Entwickler haben das Gefühl, dass Docker weit von ihnen entfernt ist und nichts mit ihnen zu tun hat. Es hat auch lange gedauert, bis ich als normaler Entwickler herausgefunden habe, wie ich Docker in meiner eigenen Entwicklung verwenden kann. Ehrlich gesagt bin ich immer noch im Lernprozess.

Dieser Artikel enthält eine Liste von Docker-Anwendungsfällen. Ich hoffe, dass er Ihnen dabei helfen kann, Docker besser zu verstehen und Ihr Denken anzuregen. Dieser Artikel beschreibt nur die tägliche Anwendung von Docker durch normale Entwickler und bietet keine vollständige Lösung.

Bevor ich die Anwendungsfälle vorstelle, hoffe ich, dass Sie sich an diesen Satz erinnern können: „Docker ist ein tragbarer Anwendungscontainer.“ Sie müssen nicht wissen, was Docker unter „tragbarem Container“ versteht, aber Sie müssen wissen, dass Docker enorme Effizienzsteigerungen im täglichen Leben bringen kann.

Wenn Sie Ihre eigene Anwendung in einem Container ausführen müssen (natürlich kann es sich um eine beliebige Anwendung handeln), stellt Docker beim Ausführen der Anwendung ein Basissystem-Image als Basissystem bereit. Mit anderen Worten: Jede Anwendung auf einem Linux-System kann in Docker ausgeführt werden.

Kann ich die Datenbank in Docker ausführen? Sicher.
Kann ich einen Node.js-Websiteserver in Docker ausführen? Sicher.
Kann ich den API-Server in Docker ausführen? Sicher.

Docker ist es egal, was Ihre Anwendung ist oder tut. Docker bietet eine Reihe von Anwendungspaketierungs-, Übertragungs- und Bereitstellungsmethoden, damit Sie jede Anwendung besser in einem Container ausführen können.

4. Probieren Sie neue Software aus

Für Entwickler müssen alle Arten neuer Technologien ausprobiert werden, die jedoch jeden Tag entwickelt werden Es ist unwahrscheinlich, dass der Autor die Umgebung einzeln einrichtet und Tests für sie durchführt. Zeit ist kostbar und dank Docker ist es uns möglich, die Umgebung mit einem oder wenigen Befehlen einzurichten. Docker verfügt über eine narrensichere Methode zum Abrufen von Software. Der Docker-Hintergrund ruft automatisch das Umgebungsbild ab und führt die Umgebung aus.
Docker wird nicht nur für den Aufbau neuer Technologieumgebungen verwendet. Wenn Sie schnell eine MySQL-Datenbank oder eine Redis-Nachrichtenwarteschlange auf Ihrem Laptop ausführen möchten, können Sie dies ganz einfach mit Docker tun. Beispielsweise benötigt Docker nur einen Befehl, um die MySQL-Datenbank auszuführen:

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

Anmerkung des Übersetzers: Obwohl die MySQL-Datenbank mithilfe von Befehlen sehr schnell installiert werden kann, wird Docker verwendet, wenn die neueste Technologie oder eine sehr komplexe Technologie verwendet wird eine sehr gute Wahl sein, wie zum Beispiel Gitlab. Ein durchschnittlicher Benutzer benötigt etwa einen Tag, um die Gitlab-Plattform zu erstellen, aber Docker benötigt nur einen Befehl.

5. Linux-Skripte lernen

Natürlich mag dieser Grund seltsam erscheinen, aber für diejenigen, die mit dem Linux-Betriebssystem nicht vertraut sind Shell-Skripte sind in der Tat eine gute Gelegenheit für Menschen. Auch wenn es in diesem Artikel nicht um Linux geht, ist die Bedeutung von Linux dennoch offensichtlich. Wenn Sie Windows verwenden, dann möchte ich Ihnen einen Vorschlag machen: Mieten Sie einen Cloud-Host bei einem Cloud-Hosting-Anbieter: Ich empfehle die Verwendung eines Cloud-Hosts für das CoreOS-System. Dies macht Sie zwar nicht zu einem professionellen Linux-Betriebs- und Wartungsmitarbeiter, ermöglicht Ihnen jedoch, schnell die Grundlagen von Linux zu erlernen, sich in Befehlszeilenoperationen zu verlieben und sich langsam mit Linux vertraut zu machen und es zu schätzen.

6. Bessere Ressourcennutzung

Die Granularität virtueller Maschinen ist „virtualisierte Maschinen“, während die Granularität von Docker „eingeschränkte“ Anwendungen ist. Im Vergleich dazu benötigt Docker weniger Speicher und ist leichter.
Für mich ist das ein Vorteil von Docker: Da ich oft mehrere Docker-Anwendungen auf meinem Computer ausführe, ist die Verwendung von Docker einfacher und bequemer als die Verwendung einer virtuellen Maschine, hat eine feinere Granularität und kann den Status des Containers kontinuierlich verfolgen .

7. Für Microservices anpassen

Wenn Sie auf Technologienachrichten achten, dann sollten Sie vom Konzept der „Microservices“ gehört haben. Docker lässt sich gut mit Microservices kombinieren. Konzeptionell ist ein Microservice ein Container, der einen Teil einer kompletten Anwendungsfunktionalität bereitstellt, und Docker kann während der Entwicklung, beim Testen und bei der Bereitstellung als Microservice-Container dienen. Sogar Produktionsumgebungen können Microservices in Docker bereitstellen.

8. Portierung zwischen Cloud-Dienstanbietern

Die meisten Cloud-Hosting-Anbieter unterstützen Docker bereits vollständig. Für Entwickler bedeutet dies, dass Sie den Cloud-Dienstanbieter problemlos wechseln können. Natürlich ist es auch nicht erforderlich, die laufende Umgebung lokal zu konfigurieren Konfigurieren Sie die Laufumgebung einmal. Der umfassende Einsatz von Docker (hier Docker und dort Docker) als Standardbetriebsumgebung kann den Arbeitsaufwand erheblich reduzieren und Fehler verursachen, wenn die Anwendung online ist.

9. API

API ist das Bindeglied zwischen Anwendungen. Ein qualifizierter Entwickler muss von anderen bereitgestellte REST-APIs verwendet oder selbst REST-APIs entwickelt haben. Es sollte darauf hingewiesen werden, dass vor der Entwicklung, unabhängig davon, ob es sich um den Client oder den API-Anbieter handelt, vor dem Codieren eine Reihe öffentlicher API-Schnittstellen definiert und dokumentiert werden müssen. Wenn der Server und der Client gemeinsam entwickelt werden, implementiert der Server normalerweise zunächst eine API-Schnittstelle, die eine feste Zeichenfolge zurückgeben kann, und implementiert dann die API-Funktionen in der zukünftigen Entwicklung langsam.
Obwohl einige Leute vielleicht denken, dass Docker hier missbraucht wurde und Sie Dateien wie sample.json verwenden können, um virtuelle APIs zu implementieren, finden Sie unten ein Beispiel, das das API-Problem bei der Entwicklung von Front-End und Back-End besser lösen kann. Ende der Trennung.
Um besser zu erklären, was ich meine, möchte ich Ihnen ein Beispiel geben: JSON Server, eine REST-API zur Bereitstellung von JSON-Daten. Jeder, der diesen Container verwendet hat, wird wissen, dass wir keinen Grund haben, Docker nicht zu verwenden, da es einen so einfach zu verwendenden Docker-JSON-Server gibt.

Für weitere verwandte Fragen besuchen Sie bitte die chinesische PHP-Website: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSuper detaillierte Analyse der Prinzipien und Funktionen von PHP Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen