为什么Docker选择用Golang开发?

首先我们现在主流的服务都是使用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。

更多相关文章

  1. golang中的int占几个字节
  2. golang rune几个字节
  3. golang编译器用什么写的
  4. golang的编译器是什么
  5. 招聘|北京字节跳动科技有限公司
  6. 字节一面,面试官告诉我链表掌握的不熟练
  7. PHP字节码缓存和内置服务器
  8. 2021各公司春招求职上岸大礼包! 春招一次上岸,阿里/字节/华为/腾

随机推荐

  1. Android之从Browser中打开本地的应用程序
  2. 在Flutter启动Android的后台服务
  3. Android 开发问题集合
  4. android-map-key获取
  5. Android近百个项目的源代码
  6. Android之---Android Studio开发最NB(牛逼
  7. 使用多状态按钮ToggleButton
  8. Android代码速查,写给新手的朋友们
  9. Android Binder 系统级使用demo
  10. Android性能优化案例研究