文章参考了Docker官网的教程,这里做一个自己练习后的总结。(`https://docs.docker.com/get-started/#prerequisites)
image:
镜像是包含一个软件可以独立运行所需要的全部组件:包括代码,依赖库,环境变量和配置文件的打包文件,它具有轻量级,独立,可执行的特点。
container:
是一个镜像运行时的一个实例,默认运行时完全独立于宿主主机的环境。只有当修改配置才会去使用host的文件和端口。
container 运行在host的内核当中,相比于虚拟机需要通过一个虚拟层访问host的具有更高的性能。container只使用自身的资源,每一个container都是一个独立运行的进程,不会比别的实例占用更多的资源。
Docker 和 虚拟机的区别可以用下图来表示:
虚拟机
Docker
个人觉的两者的主要区别是虚拟机中需要使用多种操作系统,
而Docker对应用的运行环境做了一个统一的抽象,然后使用任意一种操作系统就可以了。比如说一个软件要在不同的操作系统下运行就需要开发不同版本的程序,但是使用docker后,只需要开发一个版本就可以了。
container 可以共享同一个内核,container的镜像唯一需要的是一个可执行的文件及其依赖的库文件。这些是不要在宿主主机中安装的。这些进程都是本地运行的,可以像在linux下使用ps 命令一样使用 docker ps来查看当前运行的进程。
网友评论