Docker和虚拟机
首先说 docker 和虚拟机的区别
虚拟机需要在服务器的操作系统上虚拟出来,需要有一套完整的操作系统才能实现它的功能,也就是说,如果我要部署服务,就需要先从操作系统上安装虚拟软件,再将虚拟机上安装我需要的操作系统,发布我的服务。因为我的服务可能就只是需要发布一下,但是操作系统带的东西非常多,也一定会有我用不到的东西,而且虚拟机启动比较慢。
Docker 其实是容器的一个引擎,但是人们都习惯将 docker 默认为是一个容器 ,我理解的一个容器就是把我这个服务需要的环境和这个服务需要的东西放在一个小盒子里,这样我让它运行就可以运行,节省了很大一部分硬件资源,而且启动也比虚拟机快很多
官网解释:一个容器中运行原生 Linux和共享主机与其它容器的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,使其轻量级。
传送门:Docker官网
Docker 三个基本内容
1.容器( container )
容器可以理解为一个装载环境和服务的一个被隔离的进程
2.镜像 ( image )
镜像可以理解为一个装载环境和服务的还没有运行的静态的包,跑起来就是容器
对于镜像的创建,有两种方式,一种为通过 dockerfile 文件来创建,一种为通过容器 commit 来创建
我觉得下面的图还是比较容易理解的
3.仓库 ( registry )
仓库就是存放镜像的地方(最基础的镜像就是从registry拉取)
容器的优势
1.轻量级
运行原生 Linux和共享主机与其它容器的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,也正式因为它共享主机内核,所以运行的速度也很快
2.可以使开发和生产的环境一致(避免因为环境不一致而导致其他问题出现)
可以在容器中开发,这样可以直接部署,避免其他问题
3.打包和部署非常方便,只要拉取镜像,运行容器就可以
容器的局限性
1.网络管理相对简单
2.容器之间的相互连接需要配置
3.公用文件的存放问题不好解决
4.容器随着用户的关闭而销毁,不会留下任何记录
本文仅限于自己的理解,如有不妥当的地方,还望大神指出