Docker 学习(二)

一、前提说明

1、目前 CentOS 仅发行版本中的内核支持 Docker

  1. Docker 运行在 CentOS 7 上,要求系统为 64 位,系统内核版本为 3.10 以上
  2. Docker 运行在 CentOS 6.5 或更高版本上,要求系统为 64 位,系统内核版本为 2.6.32-431 或更高版本

2、查看自己的内核

  • uname -r: 命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

3、查看已安装的 CentOS 版本信息

  • lsb_release -a 或 cat /etc/redhat-release

二、Docker 的基本组成

1、镜像(image)

  • 镜像就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。镜像和容器就类似于 Java 中的类和实例,镜像 == 类;容器 == 对象

2、容器(Container)

  1. 容器是用镜像创建的运行实例
  2. Docker 利用容器独立运行一个或一组应用
  3. 它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
  4. 可以把容器看做是一个简易版的 Linux 环境(包括 root 权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序
  5. 容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别就在于容器的最上面那一层是可读可写的

3、仓库(Repository)

  1. 是集中存放镜像文件的场所
  2. 仓库和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像又有不同的标签(tag)
  3. 仓库分为公开仓库(Public)和私有仓库(Private)两种形式
  4. 最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载,国内的公开仓库包括阿里云、网易云等

4、小总结

  1. Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image 镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看做是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件可以生成多个同时运行的容器实例
  2. image 文件生成的容器实例,本身也是一个文件,称之为镜像文件
  3. 一个容器运行一种服务,当我们需要的时候,就可以通过 Docker 客户端创建一个对应的运行实例,也就是我们的容器
  4. 至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉取下来就可以了。

三、安装步骤

1、CentOS 6.8 安装 Docker

  1. Docker 使用 EPEL 发布,Rhel 系的 OS 首先要确保已经持有 EPEL 仓库,否则先检查 OS 的版本,然后安装相应的 EPEL 包
    yum install -y epel-release
    
  2. 安装 Docker
    yum install -y docker-io
    
    这步可能会提示 no package docker-io available,经百度之后使用下面的方法安装
    yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
    
  3. 安装之后的配置文件:/etc/sysconfig/docker
  4. 启动 Docker 后台服务
    service docker start
    
  5. 检查是否安装成功
    docker version
    
  6. CentOS 7 安装 Docker
    去官网找 Get Docker(CE(社区版))for CentOS,有安装说明,配置文件变为 /etc/docker/daemon.json

四、HelloWorld

1、配置镜像加速器

  1. 因为从 Docker Hub 上拉取一个镜像,而 Docker Hub 是国外网站,拉取比较慢,因此使用阿里云镜像加速,说白了就是阿里云拷贝了一份放在阿里云上,我们可以直接从阿里云下载
  2. 阿里云官网:https://dev.aliyun.com/search/html
  3. 注册一个属于自己的阿里云账号(可复用淘宝、支付宝账号)
  4. 获得加速器地址链接
    登录阿里云开发者平台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器 --> 复制加速器地址:https://xxxxxx.mirror.aliyuncs.com
  5. 配置本机 Docker 运行镜像加速器(CentOS 7 及以上的版本按照上面镜像加速器页面中给的方法配置
    vim /etc/sysconfig/docker
    # 添加 other_args="--registry-mirror=加速器地址"
    
    # 重启服务
    service docker restart
    
    # 查看是否配置成功,如果显示的后面带着 "--registry-mirror=加速器地址" 说明配置成功
    ps -ef | grep docker 
    
  6. 网易云加速器,只需将上述的加速器地址换为网易云的加速器地址即可,不过推荐使用阿里云加速器

2、启动 Docker 容器

docker run hello-world

在这里插入图片描述

  1. 输出完后面那段提示后,hello-world 就会停止运行,容器自动终止
  2. run 干了什么?
    开始 —> Docker 在本机中寻找该镜像 —> 若有,则以该镜像为模板生成容器实例运行;若没有,则去 Docker Hub 上查找镜像 —> Hub 上若能找到,下载该镜像到本地,以该镜像为模板生成容器实例运行;若没有找到,返回 Error response from daemon: Image does not exist,找不到该镜像

五、底层原理

1、Docker 是怎么工作的

  • Docker 是一个 Client-Server 结构的系统,Docker 守护进程运行在主机上,然后通过 Socket 连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境

2、为什么 Docker 比 VM 快

  1. Docker 有着比虚拟机更少的抽象层。由于 Docker 不需要 Hypervisor 实现硬件资源虚拟化,运行在 Docker 容器上的程序直接使用的都是实际物理机的硬件资源。因此在 CPU、内存利用率上 Docker 将会在效率上有明显优势
  2. Docker 利用的是宿主机的内核,而不需要 Guest OS,因此,当新建一个容器时,Docker 不需要和虚拟机一样重新加载一个操作系统内核。因而避免引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载 Guest OS,返个新建过程是分钟级别的。而 Docker 由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个 Docker 容器只需要几秒钟
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值