Docker学习

虚拟化技术和容器化技术
虚拟化技术
首先,Docker 容器虚拟化技术为基础的软件,那么什么是虚拟化技术呢?

简单点来说,虚拟化技术可以这样定义:

虚拟化技术是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。
Docker 基于 LXC 虚拟容器技术
Docker 技术是基于 LXC(Linux container- Linux 容器)虚拟容器技术的。

LXC,其名称来自 Linux 软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共用 API 来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得 Linux 用户可以容易的创建和管理系统或应用容器。
LXC 技术主要是借助 Linux 内核中提供的 CGroup 功能和 name space 来实现的,通过 LXC 可以为软件提供一个独立的操作系统运行环境。

cgroup 和 namespace 介绍:

namespace 是 Linux 内核用来隔离内核资源的方式。 通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。

(以上关于 namespace 介绍内容来自https://www.cnblogs.com/sparkdev/p/9365405.html ,更多关于 namespace 的呢内容可以查看这篇文章 )。

CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制。

(以上关于 CGroup 介绍内容来自 https://www.ibm.com/developerworks/cn/linux/1506_cgroup/index.html ,更多关于 CGroup 的呢内容可以查看这篇文章 )。

cgroup 和 namespace 两者对比:

两者都是将进程进行分组,但是两者的作用还是有本质区别。namespace 是为了隔离进程组之间的资源,而 cgroup 是为了对一组进程进行统一的资源监控和限制。

Docker基本组成
Docker 中有非常重要的三个基本概念,理解了这三个概念,就理解了 Docker 的整个生命周期。

镜像(Image)
容器(Container)
仓库(Repository)
理解了这三个概念,就理解了 Docker 的整个生命周期

Docker学习

相关推荐

  1. dockerDocker学习收集

    2024-01-08 10:40:04       24 阅读
  2. docker学习

    2024-01-08 10:40:04       25 阅读
  3. Docker学习

    2024-01-08 10:40:04       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-08 10:40:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 10:40:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 10:40:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 10:40:04       18 阅读

热门阅读

  1. Android 车联网——CarUserService介绍(十三)

    2024-01-08 10:40:04       28 阅读
  2. 随机森林(Random Forest)

    2024-01-08 10:40:04       40 阅读
  3. Elasticsearch8创建和使用Api-key

    2024-01-08 10:40:04       39 阅读
  4. 与指定数字相同的数的个数

    2024-01-08 10:40:04       36 阅读
  5. 聊聊jvm的mapped buffer的统计

    2024-01-08 10:40:04       38 阅读
  6. 动态规划(DP)---- 最长公共子序列

    2024-01-08 10:40:04       31 阅读
  7. Python实现观察者模式

    2024-01-08 10:40:04       32 阅读
  8. Qt中,信号与槽的原理及观察者模式的应用

    2024-01-08 10:40:04       26 阅读
  9. 企微群发宝:企业微信营销的新利器

    2024-01-08 10:40:04       40 阅读
  10. 自然语言处理

    2024-01-08 10:40:04       31 阅读