定义
咱们知道,软件依赖的环境大体包括:git
1• 配置文件
2• 代码
3• tomcat
4• JDK
5• 操做系统docker
Docker做为一个软件集装箱化平台,可让开发者构建应用程序时,将它与其依赖环境一块儿打包到一个容器中,而后很容易地发布和应用到任意平台中。tomcat
思想:服务器
核心:工具
鲸鱼是操做系统。
要交付的应用程序是各类货物,要将各类形状和尺寸不一样的货物放到大鲸鱼上,得考虑每件货物怎么安放(应用程序配套的环境),还得考虑货物和货物之间可否重叠起来(应用程序依赖的环境是否会冲突)。
如今使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼能够用一样地方式安放、堆叠集装了,省事省力。
即:打包放到鲸鱼上,鲸鱼放到服务器上。也就是“build——ship——run”,这样在本身的电脑上怎么运行,在服务器上也会怎么运行。
用docker运行一个程序的过程:
去仓库把镜像拉到本地,而后用一条命令把镜像运行起来,变成容器。测试
(1) 镜像-复制的程序
定义:
Docker 镜像能够看做是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。ui
做用
相似于虚拟机的快照,用来建立新的容器。spa
特色:
镜像不包含任何动态数据,其内容在构建以后也不会被改变。操作系统
(2)容器-集装箱
运行程序的地方
镜像是静态的,每一层都只是可读的,而容器是动态的,里面运行着咱们指定的应用。
(3)仓库-存放镜像的地方
存放镜像的地方,和git相似
why?
在知乎上看到一个很好的解释:.net
简单来讲就是,不一样的应用程序所依赖的环境不同,若是把他们依赖的软件都安装在一个服务器上,不只须要调试好久,并且可能会有冲突。
若是想把两个应用程序隔离起来,能够在服务器上建立不一样的虚拟机,不一样的虚拟机放不一样的应用,可是虚拟机的开销比较高。docker做为轻量级的虚拟机,是一个很好的工具。
做用?
解决运行环境不一致所致使的问题。这样就不会产生“本地运行没问题,可一到服务器上就不行了”的状况。
限定最大的cpu使用内存硬盘,这样就起到了隔离的做用,避免产生“一块代码产生死循环,把磁盘占满了,其它程序也挂了”的状况。
双11时扩展机器用。
总结成一句话:docker的标准化让快速扩展,弹性伸缩变得简单
使用以前和以后
以前,能够发现,每发布一个程序,都要走一遍如下的流程:
以后:
how?
docker安装?
检查计算机是否符合要求,版本和是否开启了虚拟化之类的。
去官网下载并安装
测试是否安装成功
这是一篇描述在win10上安装docker的博客:
https://blog.csdn.net/hunan961/article/details/79484098
docker的使用?——hello world
从中央库中拉取镜像
查询到拉取成功
运行镜像,查看到结果
原理解析
docker pull的时候,Docker damemon先在本地仓库中找,若是没有,再去中央仓库中拉取,拉取到本地仓库就行了。
docker run的时候,也是先在本地仓库中找,若是有,直接放到容器里用。不然,去中央仓库中拉取。
---------------------
原文:https://blog.csdn.net/qsbbl/article/details/86715741