标签:服务 namespace mamicode col java程序 启动 操作 依赖 架构
Docker概述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全可以使用沙盒机制,互相之间不会有任何接口。 几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
扩展:沙盒
沙盒也叫沙箱(sandbox)。一种虚拟技术,且多用于计算机安全技术,安全软件可以先让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成损害。
现在接触到的软件是怎么发布的?
Windows下的office2016,不能在xp上运行;mk.rpm在redhat系列Linux上运行,但不能在其他Linux版本上运行…… 这些软件都是有依赖关系的,不兼容其他的系统。
现在的软件包都是和操作系统息息相关的,而docker镜像一次编译,到处都可以运行。
类似于:
Android:linux -> JVM -> java程序app
linux -> docker -> 服务做成镜像就可以直接运行起来
windows -> docker -> 服务做成镜像就可以直接运行起来
扩展:
LXC为Linux Contianer的简写。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。
docker容器技术和虚拟机对比:
Docker架构
工作流程:
服务器A运行docker Engine服务,在docker Engine上启动很多容器container,从外网Docker Hub上把image操作系统镜像下载来,放到container容器运行。这样一个容器的实例就运行起来了。
最后,通过Docker client对docker容器虚拟化平台进行控制。
补充:
Docker核心技术
docker特性:
缺点:
Docker用于应用程序时是最有用的,但并包含数据。日志,跟踪和数据库等通常应放在Docker容器外。一个容器的镜像通常都很小,不适合存大量数据,存储可以通过外部挂载的方式使用。比如应用:NFS,ipsan,MFS等,-v映射磁盘分区。
一句话:docker只用于计算,存储交给别人。
标签:服务 namespace mamicode col java程序 启动 操作 依赖 架构
原文地址:https://www.cnblogs.com/LMIx/p/10755618.html