我通过阅读一些博客和介绍材料开始使用 docker。
我的理解是docker可以将单个应用程序包装到标准化容器中。容器提供了一个沙箱、应用程序运行所需的所有必要资源,并且内部的应用程序始终位于该容器内。这意味着我可以将容器运送到任何地方(不同类型的操作系统甚至云平台),并且它仍然应该可以正确运行。
如果我的理解是正确的,那么这是否意味着微软可以将他们的办公套装包装到一个容器中,我可以在 mac os 或 linux 上安装并运行它?还有其他一些不错的 Mac 应用程序也可以移植到 Windows 和 Linux 吗?
Docker 是 LXC 之上的一个用户友好层,LXC 是一组 Linux 内核功能,允许文件系统配置、网络资源、进程表和其他历史上全局的内核中介资源的命名空间。 (与 kvm 或 VMware 相比,它更接近 FreeBSD 监狱)。
这些功能是 Linux 特有的,在 Docker 容器中运行的应用程序仍然直接与主机的 Linux 内核交互(尽管它只能访问暴露给它所参与的命名空间的资源子集)。同样,操作码直接在硬件上运行,没有虚拟化模拟,因此硬件差异也没有被抽象掉
Docker 是这样的not跨操作系统(或跨体系结构)的可移植层,并且它不会成功地向依赖于特定内核版本的应用程序隐藏实现细节,更不用说完全不同的操作系统了。
2017 年初更新
Docker 现在通过捆绑与 Linux 上的 kvm 非常相似的轻量级虚拟化堆栈在 Mac 上运行。当这样运行时,它实际上是在做both虚拟化和容器化——前者运行(单个)Linux 内核,后者在该内核内运行一系列单独的容器。
这仍然意味着它仅限于运行本机 Linux 应用程序,并且它仍然不为桌面应用程序提供显示层(需要另外使用 X11、VNC 或其他类似的东西)。然而,通过捆绑虚拟化工具,现代 Docker 现在is某种可移植性解决方案(跨平台,而不是架构)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)