容器:
容器是应用的抽象,它将代码和依赖打包在一起,多个容器可以在同一台计算机上运行,并与其他容器共享操作系统的资源,每个容器在用户空间中作为隔离的运行程序,容器占用的空间比vm少,(容器映像的大小通常为数+MB),可以处理更多的应用程序,并且需要更少的vm和操作系统
虚拟机:
虚拟机(vm)是将一台服务器转换为多台服务器的物理硬件的抽象,虚拟机管理程序允许在一台计算机上运行多个vm,每个vm都包含操作系统,应用程序,必要二进制文件和库的完整版本,占用数+GB,vm的启动速度也可能很慢
比较docker 和虚拟机的不同:
虚拟机:虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
每个容器是相互隔离的,每个容器内部都有一个属于自己的文件系统,互不影响
应用快速的交付和部署
传统:一堆帮助文档,安装程序
docker: 打包镜像发布测试,一键运行
更快捷的升级和扩容:
使用了docker之后,我们部署应用就和搭积木一样
项目打包成为一个镜像,扩展服务器A,扩展服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的资源利用:
docker 是内核级别的虚拟化,可以再一个物理机运行很多容器的实列,服务器的性能可以被压榨到极致
docker的基本组成:
镜像:image
docker 镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==》run===》tomcat01容器(通过这个镜像可以创建多个容器,最终运行或者项目运行就是在这个容器中运行的)
容器:container
docker 利用容器技术,独立运行一个或者一个组的应用,通过镜像来创建的
启动,停止,删除,基本命令
目前就可以把这个容器理解为就是一个简易的linux系统
仓库:repository
仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库
docker hap 默认是国外的