container
容器是机器上与主机上的所有其他进程隔离的沙箱进程,容器的隔离技术利用了Linux 内核的Namespaces 和 Cgroups特性。Docker让容器的以下几个功能易于使用:
1.容器是 image的可运行实例,可以使用DockerAPI或CLI创建、启动、停止、移动或删除容器。
2.容器可以运行在本地机器,虚拟机或部署到云上。
3.容器是可移植的(可以在任何操作系统上运行)。
4.容器之间彼此隔离,运行各自的软件、二进制文件和配置。
备注:
Docker 是一个开源工具,它可以将你的应用打包成一个标准格式的镜像,并且以容器的方式运行,关于docker后面会详细介绍。
Namespace 和 Cgroups 是Linux内核的两个特性,可以让应用程序在一个资源可控的独立(隔离)环境中运行。
container image
在运行容器时,它使用一个隔离的文件系统,这个定制文件系统是由container image 提供的,因为 image 包含容器的文件系统,所以它必须包含运行应用程序所需的所有东西——所有依赖项、配置、脚本、二进制文件等等,该 image 还包含容器的其他配置,例如环境变量、要运行的默认命令和其他元数据。
好处:容器运行的时候就不再依赖宿主机上的文件操作系统类型和配置。帮助开发者跳过设置冗杂的开发环境,不用担心不同环境下的软件运行的环境配置问题(将应用程序的配置和所有依赖打包成一个镜像在容器中)。
基础总结
1.container 是 image 的一个可运行实例,container 可以看作是宿主机上的一个进程。
2.通过 Docker run 命令将 container image 运行为 container。
3.image就是一个特殊的文件系统,它提供了container中程序运行所需要的所有文件。