开发者学堂课程【Docker 快速入门:Docker 三要素】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/616/detail/9389
Docker 三要素
Docker 安装
1、前提条件
① CentOS Docker 安装
Docker 支持以下的 CentOS 版本:
CentOS 7(64-bit)
CentOS6.5(64-bit) 或更高的版本
②前提条件
目前,CentOs 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS7 上,要求系统为 64 位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为 64 位、系统内核版本为 2.6.32-431 或者更高版本。
③查看自己的内核
uname 命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
[root@atquiqu sysconfia]#uname-r
2.6.32-642.el6.x86_64
root@atguigu sysconfig]#
④查看已安装的 CentOS 版本信息
[root@atguigu sysconfiq]# lsb_release-a
LSBVersion: :base-4.0-amd64:base-4.0-noarch:core-4.0-am
d64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noa
rch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: Centos
Descrintion: Centos release 68(Final)
Release: 6.8
Codename : Final
[root@atguigu sysconfia]#
2、Docker 的基本组成
①镜像(image)
②容器(container)
③仓库(repository)
④总结
Docker 构架图
首先此图为分层的概念,Client 为我们的连接客户端(pull 为“拉,连接”的意思),对 Git 操作的命令终端。中间部分为主机,Registry 为注册仓库。
注册仓库的概念:
需要运行什么,运维工程师不再自己安装,就会去仓库上,比如要装 NGNX,从远程仓库上拉下来一个,拉到本地以后,这就是一个镜像,那么这个镜像就是一个集装箱,某一个镜像的实例就是一个容器。
放在容器里面,Docker 各自独立的集装箱就是运行的一个个环境,鲸鱼背上这么多独立集装箱,来完成我们的协作和工作。
此图为 person 的构造方法,三个不同的实例就是三个不同的容器,但均来自于同一个模板,这个模板就是类(镜像)。
①Docker 镜像( Image )就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。此图为 person 的构造方法,三个不同的实例就是三个不同的容器,但均来自于同一个模板,这个模板就是类(镜像)。即镜像就是类,容器就是一个个实例对象。
Docker |
面向对象 |
容器 |
对象 |
镜像 |
类 |
② Docker 利用容器( Container ) 独立运行的一个或一组应用。容器是用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
③仓库( Repository )是集中存放镜像文件的场所。
仓库( Repository )和仓库注册服务器( Registry )是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库( Public )和私有仓库 ( Private ) 两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/),
存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。
④总结:需要正确的理解仓储/镜像/容器这几个概念
Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image 镜像文件。只有通过这个镜像文件才能生成 Docker 容器。
Image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。以前运维工程师要十台机器安装十次。现在只需要安装 Docker,Docker 上面运行一个镜像,镜像就是复制一份就完成工作。
image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
一个容器运行一种服务,当我们需要的时候,就可以通过 docker 客户端创建一个对应的运行实例,也就是我们的容器。
至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需要的时候从仓储中拉下来就可以了。