Day26:管理 LXC 的好工具 —— Docker

前言

明天我将会介绍如何在 VM 上用 Docker 建立 Tensorflow 开发环境。
为了明天能够顺利的设定 Docker,今天我们先来简单认识一下,什麽是 Docker?

Docker 介绍

名词介绍

Docker 这个词,同时意指:

  • Docker Project
  • Docker Engine

而 Docker Engine 又分为:

  • Docker daemons
  • Docker (commands)

显而易见的,Docker daemons 就像 Server 一样,负责接收 Client commands 的指令,并完成 Docker 相关任务。

除此之外,Docker 也拥有类似 GitHub 的网站服务:Docker registry,可用於储存 Docker 相关资料。

底层实现

我们前面有介绍过 LXC,而 Docker 则可以想像成 LXC 的管理工具。
Docker 跟 PVE 一样都是虚拟化技术 High Level 的管理工具,也同样利用 LibVirt 这套工具来操作 LXC,使我们不用接触到许多底层的东西,也能妥善利用虚拟化技术。

所以其层级由底层到上是:
LXC -> LibVirt -> Docker

抽象方式

不过,对我们来说最重要的还是如何管理与使用 Docker。
在 Docker 内,为了管理容器,他将其抽象为以下几个概念:

  • Images:想像成 OOP 中的 Class
  • Containers:想像成 OOP 中的 Object Instance

所以我们可以不断用 Override 的想法,以 Layer 的方式叠床架屋 Images。
接着以该 Images,实例化出我们真的能用的 Containers。

并利用这两个方式来管理设定之:

  • Dockerfile:里描述了 Images 的生成方式(就像是 Class 的 Code)。
  • Docker Compose:包含实例化一或多个 Containers 时的参数,可以看做批次设定档。(init 时要传入的参数)

结语

所以,如果我们今天想在 PVE 内安装一台 VM ,并在其中使用 Docker,根据这二十天来的知识,会变成以下这个结构。(由底层向上)
KVM -> QEMU -> LibVirt -> PVE -> LXC -> LibVirt -> Docker


<<:  会员管理网站实作篇 - (以律师谘询平台为例子) part 1

>>:  I Want To Know React - 初探 Context

D3JsDay27What's the tree?Let me see—树状图(tree diagram)

树状图介绍 以下节录自维基百科树状结构 树状结构(英语:Tree structure),又译树形结构...

Day30 来点不一样的Cookie与Session && 完赛心得

利用URL传送Session的原理 如果我们用浏览器关闭Cookie,那麽Session也无法运作,...

DAY 3- Enigma

纳粹德国的超强机器,唯有机器才能破解机器。 今天来介绍二战时期被纳粹大规模使用的加密机器 - Eni...

系统弱点扫描工具-Tenable Nessus(中)

昨天我们安装了Tenable Nessus 今天要来使用 首先打开我们的浏览器登入 https://...

[Day 29] Leetcode 15. 3Sum (C++)

前言 到了倒数第二天啦~ 大概Day 21开始有一系列的sum题目,一直说要接续完成,终於今天又回归...