首先我们现在主流的服务都是使用Unix/Linux操作系统的,而就如前面所描述的那样Golang对于第三方的依赖相当的少(只依赖glibc),这点既是限制,也是优势。 (推荐学习:go)
因为这样的话使用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开发的详细内容,更多请关注其它相关文章!