Docker(一):Docker入门

概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,容器之间使用沙箱机制,相互之间不会有任何接口。

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker

Docker(一):Docker入门_第1张图片 Docker 官网

Docker出现的原因

在Docker出现之前:

  • 对于开发一个产品需要配置多套环境,比如开发、测试、正式环境下的应用配置
  • “在我的电脑可以运行”问题
  • 从windows开发到发布产品到linux服务器流程过于复杂
  • 发布产品流程效率低,开发打包应用给运维,运维再配置环境发布应用

使用Docker 后:

        一条龙服务:开发打包发布项目上线,且打包应用会带上项目所需环境

Docker VS VM

Docker(一):Docker入门_第2张图片 虚拟机 VS Docker

从上图可以得到

  • VM是依赖在宿主机上的完整系统,运行时会占用较多的CPU、内存、硬盘资源
  • Docker容器只包括应用程序以及依赖库,不需要依赖Hypervisor管理,仅基于libcontainer共享host Kernel运行在宿主机上,资源占用少,各个容器相互隔离,启动容器只需几秒钟完成,更加轻量高效
  • 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器

Docker优势

1、更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行,

避免开发人员协作编码时“在我的机器上可正常工作”的问题

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

2、更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

3、更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,可以将一个应用程序从一个平台直接迁移到另外一个

4、更简单的系统运维

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

Dokcer基本组成

Docker(一):Docker入门_第3张图片 docker架构组成

  • Docker image:镜像是只读的,镜像中包含有需要运行的文(项目+依赖环境)。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载
  • Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中
  • Docker hub/registry: 共享和管理Docker镜像的仓库,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

总结:镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方

    Docker镜像加载原理

Docker(一):Docker入门_第4张图片 联合文件系统
Docker(一):Docker入门_第5张图片 镜像加载
Docker(一):Docker入门_第6张图片 docker体积小的本质

 

Dokcer运行原理

Docker首先采用的是C/S架构,docker守护线程运行在服务器中,我们在本地基于Sokcet从客户端访问,docker守护线程收到客户端命令后执行

Docker(一):Docker入门_第7张图片

Docker(一):Docker入门_第8张图片

Docker(一):Docker入门_第9张图片 虚拟化技术的演变

你可能感兴趣的:(Docker,docker,java,linux)