docker為什么用go語言寫?

首先我們現在主流的服務都是使用Unix/Linux操作系統的,而Golang對于第三方的依賴相當的少,這點既是限制,也是優勢。這樣的話使用Golang開發的docker基本能夠完美的運行于大多數安裝Unix/Linux操作系統的服務器上。

docker為什么用go語言寫?

為什么Docker運行不需要安裝Golang?

提出為什么Docker運行不需要安裝Golang這個問題是因為本人是個Java后臺開發,而在Ubuntu上使用的一些用Python開發的開源工具,而Java和Python的開源工具都要安裝對應的運行環境:

Java起碼要安裝JRE,有時候為了方便也會安裝JDK

Python起碼需要安裝Python開發環境,有時候開源工具還要安裝其他Python的第三方包

立即學習go語言免費學習筆記(深入)”;

以Java為例子,Java源程序經過編譯器編譯后變成字節碼,字節碼由虛擬機解釋執行,虛擬機將每一條要執行的字節碼送給解釋器,解釋器將其翻譯成特定機器上的機器碼,然后在特定的機器上運行。而無論是編譯器還是解釋器其實都是JVM的一部分。Java的平臺無關性其實是靠JVM實現的,同時Java的程序也需要運行在JVM上。

但是Golang編譯生成的是一個靜態可執行文件,除了glibc外沒有其他外部依賴。

那么glibc到底是什么呢?

其實glibc是GNU發布的libc庫,即c運行庫。glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴于glibc。這樣也意味著docker在Unix/Linux系統上運行其實可以拋開Golang。

為什么Docker選擇用Golang開發?

首先我們現在主流的服務都是使用Unix/Linux操作系統的,而就如前面所描述的那樣Golang對于第三方的依賴相當的少(只依賴glibc),這點既是限制,也是優勢。因為這樣的話使用Golang開發的Docker基本能夠完美的運行于大多數安裝Unix/Linux操作系統的服務器上。

推薦教程:《docker教程》、《docker教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享