docker的基本概念

一、docker思想

1.1 集装箱

Docker的思想来源于集装箱,试问集装箱解决了什么问题?试想,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会相互影响。那么我就不需要专门运送水果的船和专门运送化学物品的船了。只要这些货物在集装箱里装的好好的,那我就可以用一艘大船把它们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮,而docker就是集装箱。

1.2 标准化

1.2.1 运输方式标准化

应用程序在不同主机,电脑之间传递,通过docker进行了一个标准化,本地使用docker命令将开发的应用上传到docker仓库(货物运输的码头),其他主机服务器(电脑)可以通过命令从仓库获取应用。

1.2.2 存储方式标准化

不需要关心应用存储的位置,只需要通过docker命令进行启动和关闭

1.2.3 API 接口

docker提供了一系列的标准化API接口,可对我们的应用进行查看,删除,启动,停止等,不需要关心具体的服务器(tomcat等)的启动停止等命令。

1.3 隔离

Docker隔离服务器资源,每个docker应用都具有自己的cpu,内存,硬盘等,不会相互影响(不会对主机造成影响,不会对其他容器造成影响)

二、docker解决什么问题?

  •  更快速的交付和部署(一次创建和配置,可以在任意地方正常运行)
  • 更高效的虚拟化(不需要hypervisor支持,内核级虚拟化)
  •  更轻松的迁移和扩展(在任意平台移植可以分分钟扩展多台服务器应对某个时段的高访问量例如:双十一
  • 更简单的管理

三、docker核心概念和技术

3.1 Docker核心概念——镜像

所谓镜像就是程序运行的环境的只读版本。其包含了所有程序的依赖软件和配置。构建镜像的过程有些类似于在常规部署当中装系统、配环境的过程。注意,镜像是只读的,因此在构建镜像过程中不应该放入需要频繁修改的文件和配置。比如我们自行开发的应用程序可能需要不断的升级,则不适合放入镜像中。Docker运行容器前需要本地存在对应的镜像。

镜像可以用来创建Docker容器的。一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序。在docker hub里面有大量现成的镜像提供下载。docker的镜像是只可读的,一个镜像可以创建多个容器。

镜像的分层:镜像是分层的。任何镜像都是基于一个基本镜像(如:linux某个版本的内核)逐步构建而成。镜像是只读的,在构建自定义镜像的过程中,每一步安装和配置都是在上一个镜像的基础上叠加一层形成新的镜像的过程。

获取基础镜像:可以从Docker Hub上下载自己需要的基础镜像,其中包含大量的官方镜像,也可以自己构建docker仓库。

3.2 Docker核心概念——容器

容器是镜像本身和叠加于镜像之上的一个读写层。应用程序仅能运行于容器之中。应用程序在容器中对系统所做的修改将仅体现在读写层,而并不会影响到其下面的镜像层。值得注意的是,一个容器的存储空间是受限的。所以并不适合将应用程序的持久化功能放入容器当中。可以通过挂载外部路径的方式将持久化数据保存在容器以外。docker容器就是来管理不同架构的应用程序的。从本质上来说,容器是从镜像创建的运行实例。容器与容器之间是相互隔离的,每个容器都是保证安全的平台。它可以被启动、开始、停止、删除

3.2 Docker概念——仓库

仓库是集中存放镜像文件的场所。每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。最大的公开仓库是DockerHub,存放了数量庞大的镜像供用户下载。国内的公开 仓库包括DockerPool等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。

3.3 docker镜像与容器存储结构图

 

这里我们可以看到一个运行中的container是包含了若干个read only的image层,然后最上面的writable层才是我们可写的层。第一个readonly的层会加载其父层。直到最下面的base image层。我们所做的改动会被保存在最上面的那个writable层里。

3.4 Docker客户端/服务端/远程仓库关系图






Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。

 

docker通俗按照自己的理解来说,就是类似VM虚拟机一样的虚拟技术。但是它比虚拟机更加强大,体积小,运行速度快,启动和关闭只需要几秒。相对于普通虚拟机来说,启动时间在分钟级别,占用内存大。所以这就是docker出现之后的优势。docker容器可以打包为镜像文件(类似VM虚拟机的那些快照文件),迁移的时候我们只需要在新服务器上安装docker,就能把之前打包好的镜像文件导入到docker里面,运行容器,就能实现访问,不需要重新配置环境。(引用:http://blog.csdn.net/xyz_dream/article/details/53081687)


下一篇:docker的安装与使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值