image
镜像是隔离的文件系统。必须包含运行应用程序所需的所有内容 - 所有依赖项、配置、脚本、二进制文件等。镜像还包含容器的其他配置,例如环境变量、默认命令运行,以及其他元数据。
image构成
一个镜像由若干只读层(read-only layer)构成。
我们能看到多个只读层叠加在一起,层与层之间通过指针关联,这些层能够在运行 Docker 的宿主机的文件系统上访问到。
Linux 的统一文件系统(union file system)技术将这些叠加的只读层合并成一个文件系统,该系统为这些只读层提供了一个统一的视角,从而为 Docker 的用户隐藏了多层的存在。
container
容器是在主机上运行的沙盒进程,与该主机上运行的所有其他进程隔离。
container构成
容器和容器镜像一样,也是若干层的叠加,唯一区别是所有只读层的最上面一层,是一层可读可写层,如上图绿色图例所示。容器 = 容器镜像 + 可读可写层
总结
容器是镜像实例化而来的,既容器是进程,镜像是文件,容器是基于镜像创建的,容器中的进程依赖于镜像中的文件。
docker的镜像是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。docker利用容器来运行应用,docker容器是docker镜像创建的运行实例。