Docker基础篇——初识

前提概念了解

云计算

云计算是分布式计算的一种,是通过网络云将巨大的数据计算处理分解成无数小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
云计算把许多计算资源集合起来,通过软件实现自动化管理,之需要很少的人参与,就能让资源被很快利用。将计算能力作为一种商品,一种资源,可以在互联网上流通,让每一个使用互联网的人都可以使用网络上的庞大计算资源和数据中心。

云计算服务类型

基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS);

  • 基础设施即服务:它向云计算提供商的个人或组织提供虚拟化计算资源,如虚拟机、存储、网络和操作系统;
  • 平台即服务:为开发人员提供通过全球互联网构建应用程序和服务的平台,PaaS为开发、测试和管理软件应用程序提供按需开发环境。
  • 软件即服务:通过互联网提供按需软件付费应用程序,云计算提供上托管和管理软件应用程序,并允许其用户连接到应用程序并通过全球互联网访问应用程序。

PaaS(plarform as a Service)

把服务器平台作为一种服务提供的商业模式,提供用户将云端基础设施部署与创建至客户端,或者借此获得使用编程语言、程序库与服务。PaaS是云中的完整开发和部署环境。

什么是容器?

在这里插入图片描述

容器是软件的标准单位,它将代码极其所有依赖项打包起来,因此应用程序从一个计算环境快速可靠地运行到另一个计算环境。对于Linux和基于Windows的应用程序,容器化软件始终相同的运行,无论基于什么基础设施,容器将软件与其环境隔离开来,尽管存在开发和运行环境的差异,但是能确保其工作一致。

容器与管理程序虚拟化的不同:
在这里插入图片描述
容器和虚拟机有类似的资源隔离和分配的好处,但是功能不同。

  • 管理程序虚拟化通过中间层将一台或多台独立的机器虚拟运行与物理硬件之上;虚拟机是物理硬件的抽象,将一台服务器转换为多太服务器,系统管理程序允许多个VM在一台机器上运行,每个VM包含操作系统、应用程序、必要的二进制文件和库的完成副本。

  • 容器则是直接运行在操作系统内核之上的用户空间。容器虚拟化被称为操作系统级虚拟化,容器技术可以让多个独立的用户空间运行在同一宿主机上。容器是应用程序层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台机器上运行,并且与其他容器共享OS内核,每个容器在用户空间中作为独立进程运行。容器占用的空间比VM小,可以处理更多的应用程序,并且需要更少的VM和操作系统。

背景

解决开发和运维之间因为环境不同而导致的矛盾,集群环境下每台机器都不熟相同的应用。

简介

Docker是一个能够把开发的应用程序自动部署到容器的开源的应用容器引擎,是一个轻量的级、独立的、可执行的软件包,包含运行应用程序所需的一切代码、运行时、系统工具、系统库和设置。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

提供一个简单、轻量的建模方式
职责的逻辑分离

开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心入和管理容器。

快速、高效的开发生命周期

Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用具备可移植性、易于构建、并易于协作。

鼓励面向服务的架构

优点

  • 与传统的VM相比,Docker更轻量,启动速度更快,单台硬件上可以同时跑成百上千个容器。
  • Docker是可移植跨平台的,可以在各种主流Linux发布版或者OS X以及Windows上使用。如Java可以做到一次编译,到处运行,Docker可以称为一次构建,在各平台运行。

Docker组件

Docker客户端和服务端

Docker是一个CS架构的程序,客户端只需向Docker服务器或守护进程发送请求,服务器或守护进程将完成所有工作并返回结果。可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
在这里插入图片描述

Docker镜像

用户基于镜像来运行自己的容器,也可以把镜像当做容器的源代码,体积小、易于分享存储和更新。

Registry

Docker用Registry来保存用户构建的镜像,分为公共和私有两种:Docker公司运营的公共Registry叫做Docker Hub,用户可以在这个平台上注册账号,分享并保存自己的镜像。

容器

Docker可以帮你构建和部署容器,只需要把自己的应用程序或服务打包放进容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程,可以认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。

Docker容器就是:一个镜像格式、一系列标准的操作、一个执行环境;

Docker能做什么

  • 加速本地开发和构建流程,使其更加高效、更加轻量化。
  • 能够让独立服务或应用程序在不同的环境中得到相同的运行结果。
  • 用Docker创建隔离的环境来进行测试;
  • Docker可以让开发者先在本机构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
  • 构建一个多用户的平台即服务(SaaS)基础设施;
  • 为开发、测试提供一个轻量级的独立沙盒环境,或者将独立的沙盒环境用于技术教学。
  • 提供软件即服务(SaaS)应用程序;

Docker的技术组件

  • 文件系统隔离:每个容器都有自己的root文件系统;
  • 进程隔离:每个容器都运行在自己的进程环境中;
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的;
  • 资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器;
  • 写时复制:文件系统都是通过写时复制创建的,这意味着文件系统是分层的、快速的、而且占用的磁盘空间更小。
  • 日志:容器产生的STOUT、STDERR、STDIN这些IO流都会被收集并计入日志,用来进行日志分析和故障拍错;
  • 交互式shell:用户可以创建一个伪tty终端,将其连接到STDIN,为容器提供一个交互式shell。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值