首先主流服务使用Unix/Linux操作系统,而go语言对于第三方的依赖相当的少,这样使用go语言开发的Docker基本能够完美的运行于大多数安装Unix/Linux操作系统的服务器上。其次,go语言有部署简单、并发性好、执行性能好等优点。

本教程操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

为什么docker用go语言?

首先我们现在主流的服务都是使用Unix/Linux操作系统的,而就如前面所描述的那样Golang对于第三方的依赖相当的少(只依赖glibc),这点既是限制,也是优势。因为这样的话使用Golang开发的Docker基本能够完美的运行于大多数安装Unix/Linux操作系统的服务器上。

其次,Golang开发的有很多优点:

1、部署简单。

Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。这和 Python 有着巨大的区别。由于历史的原因,Python 的部署工具生态相当混乱【比如 setuptools, distutils, pip, buildout 的不同适用场合以及兼容性问题】。官方 PyPI 源又经常出问题,需要搭建私有镜像,而维护这个镜像又要花费不少时间和精力。


为什么docker用go语言