1.什么是Docker
Docker是容器技术=>是应用容器技术,容器里面运行软件环境。
对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其他的隔离进程,因此也称其为容器。
2.为什么是Docker
- 在开发的时候,在本地测试环境可以跑,生产环境跑不起起来
例如Java_web应用程序包含很有环境(jdk,msql,tomcat),当这行环境本地环境和服务服务器环境不一致时,可能导致程序跑不起来。Docker可以将程序以及程序使用的软件环境一起打包在一起,无论在哪个机器上保证了环境一致。
优势1:一致的运行环境,更轻松的迁移。
- 服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了
如果你的程序重要性不是特别高的话,公司基本不可能让你的程序独享一台服务器,这时你的程序就会和其他人的程序共享一台服务器,所以不可避免的就会受到其他程序的干扰,导致自己的程序出问题,Docker就很好的解决了环境隔离问题,别人程序不会影响自己的程序。
优势2:对进程封装隔离,容器与容器之间互不影响,更高效的利用系统资源
进程隔离:例如qq,可以开多个qq,每一个应用之间是隔离的。
- 公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器
在没有Docker的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署的一地鸡毛。用Docker的话,我只需要将程序打包到镜像,你要多少台服务,我就给力跑多少容器,极大地提高了部署效率。
优势3:通过镜像复制N多个环境一致容器
3.镜像,容器,仓库
1.镜像 image 复数images (就相当一个软件)
定义:一个镜像代表一个软件 如:mysql 镜像 redis镜像 nginx镜像
#特点:只读
2.容器 container //通过软件(镜像)运行起来的服务
定义:基于某个镜像启动一个实例称之为一个容器,或称之为服务。
#特点:可读可写
3.仓库 repository
定义:用来存储docker中所有镜像具体位置。
远程仓库:docker在全世界范围内维护一个唯一远程仓库
本地仓库:当前自己机器中下载镜像存储位置。