Docker原理及简单使用

参考了网上的一些内容:javaGuide等

容器相关概念

什么是容器

容器概念

将软件打包成标准单元,用于开发、交付和部署

  • 容器镜像是轻量的、可执行的独立软件包
  • 在任何环境都可以始终如一的运行(Windows、Linux)
  • 容器赋予了软件独立性,有助于避免环境配置差异和不同人员软件版本对开发过程的影响

物理机、虚拟机和容器的差异

物理机就是个人电脑,资源是完全相互独立的
虚拟机是虚拟一套硬件,在硬件之上运行完整的操作系统,共享物理机的硬件资源
容器是虚拟化的操作系统,而非硬件,容器之间共享同一操作系统的资源,隔离性比虚拟机低
物理机:
在这里插入图片描述
虚拟机:
在这里插入图片描述
容器:
在这里插入图片描述

什么是docker

概念

  • 软件容器平台
  • 利用Go开发,基于CGroup功能和namespace实现,对进程进行了封装隔离,属于操作系统层面的虚拟化技术
  • 可自动执行重复化任务
  • 用户可以方便的创建和使用容器,把自己的应用放入容器。还可以进行版本管理、复制、分享、修改

特点

  • 一致性运行环境:确保应用环境一致性
  • 更快的启动时间
  • 隔离性
  • 弹性扩展:能够处理集中爆发的服务器压力
  • 迁移方便
  • 持续交付和部署

容器和虚拟机的对比

简单来说,容器和虚拟机都是通过对资源的虚拟化实现隔离和分配的,但功能有所不同,容器虚拟化的是操作系统而虚拟机虚拟化的是硬件,因此,容器的隔离级别稍低,但可移植性更高
在这里插入图片描述
在这里插入图片描述

  • 虚拟机是虚拟化一套硬件之后,在其上运行完整的操作系统,在该系统内运行所需应用进程,适用于将单服务器通过隔离变成多服务器,隔离不同用户
  • 容器内的应用进程直接运行在宿主内核上(用户空间),容器没有自己的内核,容器相对来讲更轻便

docker基本概念

docker主要有三个基本概念:

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)
    在这里插入图片描述

镜像(Image):特殊的文件系统

操作系统分为内核和用户态,内核启动后,会挂载root文件系统挂在用户空间支持。
Docker中的镜像(Image)就相当于是root文件系统
docker镜像是一个特殊的文件系统,除了提供容器运行时的程序、库、资源、配置等文件外,还包括运行时准备的一些配置参数(匿名卷、环境变量、用户等)。
镜像不包含任何动态数据,其内容构建之后也不会改变
docker的镜像利用了Union FS技术,采用分层存储架构,因此镜像实际上是由多层文件系统联合组成
镜像构建时,一层一层构建,前一层是后一层的基础,每层构建完之后就不在改变,后一层的任何改变都只发生在自己的层上。

容器(Container):镜像运行的实体

容器是镜像运行的实体,可以被创建、运行、暂停、删除等
属于自己独立的namespace

仓库(Repository):镜像存储文件的地方

存储和分发镜像的服务

docker底层原理

虚拟化技术

虚拟化技术是一种资源管理技术,通过对cpu、内存、磁盘空间的抽象和转换,呈现出可供分割、组合的一个或多个电脑配置环境。虚拟化资源一般包括计算能力和数据存储

docker基于LXC虚拟容器技术

LXC技术(Linux Container)主要是借助Linux内核中的CGroup功能和namespace来实现的,为软件提供一个独立的操作系统运行环境。

  • namespace:是Linux内核用来隔离内核资源的方式,进程只能看到自己namespace范围内的资源
  • CGroup (Control Group):是内核提供的一种可以限制、记录、隔离进程组(process group)所使用的物力资源(cpu、memory、i/o等)的机制
    cgroup和namespace对比:
    namespace是为了隔离进程组之间的资源;
    cgroup是为了对一组进程进行统一的资源监控和限制;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值