容器技术是英文linux ContAIner的直译,这种技术最初使用在Linux操作系统上。如下图所示,在 Linux系统中,容器技术是一种隔离技术,通过容器技术将不同服务封装在对应的容器中,之后结合一些脚本使这些容器按照要求相互协作。所有容器共享同一个操作系统内核。每个容器可单独限制CPU、内存、硬盘和网络带宽容量,并且拥有独立的IP地址和操作系统管理员账户。
容器是一个标准的软件单元,它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地迁移到另一个计算环境。Docker 容器镜像是一个轻量级的、独立的、可执行的软件包,包括运行应用程序所需的一切:如代码、运行环境、系统工具、系统库和设置。Docker是容器的引擎,通过Docker引擎就可以实现容器的功能。
容器技术最重要的价值是:为在不同主机上运行的应用程序服务提供一个轻便、一致的格式。容器格式的标准化可加快交付体验,允许用户方便地对工作负载进行迁移,避免局限于单一的平台提供商。利用容器可以短时间内部署成百上千个应用,保证用户应用快速上线;容器可以简化配置过程,用户应用的运行环境可以直接打包到容器内,使用时可以直接启动。
如上图所示,左图为容器技术架构图,右图为虚拟化技术架构图。两者相比,容器与虚拟机最大的不同是容器里不再安装操作系统,容器的本质是一种操作系统级别的虚拟化,启动一个应用容器其实就是启动一个进程,节省了大量操作系统所占资源,同样一台计算机就可以服务于更多租户。容器技术对操作系统的资源进行再次抽象,而并非对整个物理机资源进行虚拟化。容器和虚拟机一起使用为部署和管理应用程序提供了极大的灵活性。
Docker容器无处不在Linux,windows,数据中心,云服务器等。