Docker是什么?
它是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。就像Docker的鲸鱼图标一样,Docker像鲸鱼,他运行在Linux系统中,它上面的集装箱是一个个虚拟化的容器,这些容器拿来就用,省去了构建环境的复杂性和重复性,可以批量的添加和删除容器。例如我想体验一下TOMCAT8,直接运行下面的命令,即可体验
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8
Docker能干什么?
- 快速体验应用,例如我想体验下nextcloud 网盘,执行下两条命令,就可以体验了;
- 快速构建开发环境,例如开发环境需要zookeeper,redis,拉取公司镜像,直接构建完成;
- 快速部署、迁移、回滚,不依赖底层环境;
等等,还有很多,实际上就是将运行环境磨平,可以快速构建多版本应用,实现面向产品的交付和使用。
Docker和VM虚拟机的区别
Docker和VM实际不具有可比性,当然也各有优缺点
VM是对硬件的虚拟化,在上面直接运行一个操作系统,需要的系统、软件都是自行安装构建的;
Docker是一个进程,相当于将应用或软件和环境打包成一个集装箱,交给Docker运行,优点是快速、轻量、上手快;
Docker官网地址
Home - Dockerhttps://www.docker.com/
Docker镜像地址
Docker Hubhttps://hub.docker.com/
Docker的三个概念
- Image:镜像,就是一个特殊的文件,是运行环境软件的集合,它是一个只读文件
- Container:容器,将镜像在Docker里面运行起来,就是一个容器,容器是可更改的,可以在里面添加命令,添加软件,是真正运行的进程
- Registry:镜像的仓库,就是存放镜像的仓库。这个仓库可以是公共仓库,云仓库、公司仓库、自己的仓库