Docker ist eine fortschrittliche LXC-basierte Container-Engine, die vom PaaS-Anbieter dotCloud bereitgestellt wird. Der Quellcode wird auf Github gehostet. Er basiert auf der Open-Source-Sprache und entspricht dem Apache2.0-Protokoll.
Obwohl Docker in Golang geschrieben ist, kann es direkt ausgeführt werden, ohne dass Golang installiert werden muss. Es stellt sich also die Frage: Warum muss Docker Golang nicht installieren?
Warum erfordert Docker nicht die Installation von Golang?
Die Frage, warum Docker keine Installation von Golang erfordert, liegt daran, dass ich ein Java-Hintergrundentwickler bin und einige in Python entwickelte Open-Source-Tools unter Ubuntu sowie sowohl Java- als auch Python-Open-Source-Tools verwendet werden erfordern Installieren Sie die entsprechende Betriebsumgebung:
● Für Java muss mindestens JRE installiert sein, und manchmal wird der Einfachheit halber auch JDK installiert.
● Für Python muss mindestens die Python-Entwicklungsumgebung installiert sein. und manchmal müssen andere Open-Source-Tools installiert werden.
Nehmen Sie Java als Beispiel. Das Java-Quellprogramm wird von einem Compiler kompiliert und in Bytecode umgewandelt Virtuelle Maschine. Die virtuelle Maschine konvertiert jeden auszuführenden Bytecode. Der Interpreter übersetzt ihn in Maschinencode auf einer bestimmten Maschine und führt ihn dann auf der bestimmten Maschine aus. Sowohl der Compiler als auch der Interpreter sind tatsächlich Teil der JVM. Die Plattformunabhängigkeit von Java wird tatsächlich durch JVM erreicht, und Java-Programme müssen auch auf JVM ausgeführt werden.
Aber Golang kompiliert und generiert eine statische ausführbare Datei ohne andere externe Abhängigkeiten außer glibc.
Was genau ist Glibc?
Tatsächlich ist glibc die von GNU veröffentlichte libc-Bibliothek, die C-Laufzeitbibliothek. Glibc ist die unterste API im Linux-System und fast jede andere laufende Bibliothek hängt von glibc ab. Das bedeutet auch, dass Docker auf Unix/Linux-Systemen tatsächlich ohne Golang laufen kann.
Warum hat sich Docker für die Verwendung von Golang für die Entwicklung entschieden?
Erstens nutzen unsere aktuellen Mainstream-Dienste alle Unix/Linux-Betriebssysteme und Golang ist kaum von Dritten abhängig (nur glibc). Dies ist sowohl eine Einschränkung als auch ein Vorteil. Denn in diesem Fall kann der mit Golang entwickelte Docker grundsätzlich einwandfrei auf den meisten Servern laufen, auf denen Unix/Linux-Betriebssysteme installiert sind.
Zusammenfassung
Viele Programmiersprachen haben einige Einschränkungen und Mängel, aber wir müssen eine Programmiersprache entsprechend unseren eigenen Bedürfnissen auswählen, manchmal in bestimmten Szenarien Eine geeignetere Programmiersprache kann größere Vorteile bringen. Dies gilt auch für die Wahl des Frameworks. Es ist nicht unbedingt das High-End- oder beliebte Framework, das jeder für gut hält, sondern das, das am besten zu Ihrem Unternehmen passt.
Empfohlenes Lernen: Gehen Sie zum Video-Tutorial
Das obige ist der detaillierte Inhalt vonWarum hat Docker Golang für die Entwicklung ausgewählt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!