Docker简介
前言
Docker应用场景:
(1)简化配置,构建一次可以 打包后既可以用作测试环境优可以做生产环境/预生产环境,可以省去很多测试环节,假如一台服务器 ,可进行多版本的测试,不用排队等待。
(2)可以解决开发人员部署环境的困难,比如一个新来的同事要安装环境可能需要半天时间,如果直接运行一个已经配置好的容器就简单多了。
(3) 应用的隔离,服务器整合,一台服务器可以使用Docker 部署多套业务,并且隔离性很高(当然和虚机比不了)
(4)一台服务器 可以给每个用户/开发人员 配置一个容器 进行使用。
(5)对于开发来说部署好之后到处运行,便利开发调试工作
(7)改变了产品的交付模式,可以直接给你Docker镜像
(8)减少资源利用,和虚拟机比较省去了很多不必要的资源,损失的隔离性其他的优点完全足以弥补了
(9)对于运维来说,可以快速的进行扩容,减少源利用率
(10)更适用微服务,每个小的服务都可以进行集群,因为Docker 对资源的利用相对小点,你可以一台服务器多启动几个,相比对其他产品对服务器的I/O使用上要了很多比如(启动风暴)
(12)可以多平台的部署(win,linux,uinx,mac)
一、Docker是什么?
Docker是一个能把开发的应用程序自动部署到容器的开源引擎。由Docker公司(www.docker.com 前dotCloud公司,Paas市场中的老牌提供商)的团队编写。基于Apache 2.0开源授权协议发行。
二、Docker有什么用
1.提供一个简单,轻量的建模方式
Docker使用简便,只需要几分钟就可以把程序“Docker化”,即把程序打包成Docker镜像。Docker依赖于写时复制(copy-on-write)模型,修改应用程序非常迅速
2.职责的逻辑分离
使用Docker,开发人员只需要考虑容器中运行的程序,而运维只需要关心如何管理容器。Docker设计的目的就是要加强开发人员写代码的开发环境和生产环境的一致性。
3.快速,高效的开发周期
Docker的目标之一就是缩短代码从开发,测试到部署,上线运行的周期,让应用程序具备可移植性,易于构建,并且易于协作。
4.鼓励使用面向服务的架构
Docker推荐单个容器只运行一个应用程序或者进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服务都可以表示为一系列的内部互联的容器,从而使分布式部署应用程序,扩展或者调试应用程序都变得非常简单,同时也提高了程序的内省性。
三、Docker组件
- Docker客户端和服务器,也成为Docker引擎
Docker是一个客户端/服务器(C/S)架构的程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所以请求并返回结果,Docker守护进程有时候也被称为Docker引擎。Docker架构图:
- Docker镜像
镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器,镜像也是Docker容器生命周期中的“构建”部分。镜像是基于联合(Union)文件系统的一种层式的结构,由一系列指令一步一步构建出来。例如: 添加一个文件; 执行一个命令; 打开一个端口;
- Registry
Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫做Docker Hub。用户可以再Docker Hub注册账号,分享并保存自己的镜像
- Docker容器
Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。Docker容器总结起来就是: 一个镜像格式; 一系列标准的操作; 一个执行环境;
Docker借鉴了标准集装箱的概念,集装箱运输货物,而Docker运输软件。 每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里面的软件镜像也可以进行一些操作,例如,镜像可以被创建,启动,关闭,重启以及销毁