首頁  >  文章  >  後端開發  >  docker為何選擇golang開發?

docker為何選擇golang開發?

青灯夜游
青灯夜游原創
2019-12-23 13:58:203847瀏覽

Docker 是 PaaS 提供者 dotCloud 開源的一個基於 LXC 的高級容器引擎,原始碼託管在 Github 上, 基於go語言並遵從Apache2.0協定開源。

docker為何選擇golang開發?

Docker雖然是用Golang寫的,但是卻不需要安裝Golang就可以直接運作了。於是便有這個疑問:為什麼Docker運作不需要安裝Golang?

為什麼Docker運作不需要安裝Golang?

提出為什麼Docker運作不需要安裝Golang這個問題是因為自己是個Java後台開發,而在Ubuntu上使用的一些用Python開發的開源工具,而Java和Python的開源工具都要安裝對應的運作環境:

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

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

以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作業系統的伺服器上。

總結

許多程式語言是會存在一些限制和缺點,但是我們要根據自己的需求去選擇程式語言,有時會在特定的場景上選擇一個更合適的程式語言或會帶來更大的收益。這點也適用於框架的選擇上,不一定是大家所說的高大上或流行的框架就是好的,適合於自己的業務才是最好的。

推薦學習:go影片教學

以上是docker為何選擇golang開發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn