docker集装箱比静态链接的EXE有什么优势?

我正在努力去理解docker解决的实际问题。 Docker规定“每个容器一个进程”。 如果你的容器只封装一个程序/进程,那么静态链接的可执行文件有什么优势呢? 这不是用一个简单而有效的方式来做基本相同的事情(封装一个程序)吗?

Docker解决了一个静态链接的exe没有的常见问题列表:

  • 您可以使用已知文件系统中的文件夹分发应用程序,初始化环境variables以及先前创build并build立的networking设置。 没有风险的安装时间,您的应用程序第一次运行时尝试创build文件夹,path,环境variables等,并因权限错误,networking不明,ABI不兼容等原因而崩溃。
  • 设置微服务架构更为方便。 许多实例在自己的环境中运行每个实例而不会冲突竞争,并提供分发,加载和运行后端服务的工具。

那么没有。

这更像是chroot()jail()pledge() ,docker的好处是可以轻松地更改程序运行的用户上下文。

另一个好处是,你可以使用一个完全不同的操作系统,然后主机。 例如:Linux上的MS Dotnet核心1。