重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
Docker是什么?
為永春等地區用戶提供了全套網頁設計制作服務,及永春網站建設行業解決方案。主營業務為做網站、成都網站建設、永春網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
為什么Docker選擇用Golang開發?
首先我們現在主流的服務都是使用Unix/Linux操作系統的,而就如前面所描述的那樣Golang對于第三方的依賴相當的少(只依賴glibc),這點既是限制,也是優勢。
因為這樣的話使用Golang開發的Docker基本能夠完美的運行于大多數安裝Unix/Linux操作系統的服務器上。
為什么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開發的詳細內容,更多請關注創新互聯其它相關文章!