zoukankan      html  css  js  c++  java
  • Docker的安装

     

    一:Docker简介

     

    1.什么是Docker?

    Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目

    它基于 Google 公司推出的 Go 语言实现。

    项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上 进行维护

    Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc

    Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用

    Docker 项目的目标是实现 轻量级的操作系统虚拟化解决方案

    Docker 的基础是 Linux 容器(LXC)等技术

    在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便

    用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植 的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化

    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

     

    2.为什么用Docker?

     

    ① Docker 容器虚拟化的好处

    在云时代,开发者创建的应用必须要能很方便地在网络上传播

    也就是说应用必须脱离底层物理硬件的限制;同时必须满足“任何时间 任何地点”可获取可使用的特点

    因此,开发者们需要一种新型的创建分布式应用程序的方式,快速分发部署,而这正是 Docker 所能够提供的最大优势

    Docker 提供了一种更为聪明的方式,通过容器打包应用解耦应用运行平台

    这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了, 无论新旧服务器是否是同一类别的平台

    这无疑帮助我们节约了大量的宝贵时间,并降低部署过程出现问题的风险

     

    ② Docker 在开发和运维中的优势

    对于开发和运维人员来说,最梦寐以求的效果可能就是一次创建和配置,之后可以在任意地方、任意时间让
    应用正常运行,而 Docker 恰恰可以实现这一终级目标

    具体来说,在开发和运维过程中,Docker 具有以下几个方面的优势:
    • 更快的交付和部署

    使用 Docker,开发人员可以使用镜像来快速构建一套标准的开发环境

    开发完之 后,测试和运维人员可以直接使用完全相同的环境来部署代码

    只要是开发测试过的代码,就可以确保 在生产环境无缝运行

    Docker 可以快速创建和删除容器,实现快速迭代,节约开发、测试及部署的时间

    • 更高效的利用资源

    运行 Docker 容器不需要额外的虚拟化管理程序的支持,Docker 是内核级的虚拟化,可以实现更高的性能

    同时对资源的额外需求很低,与传统的虚拟机方式相比,Docker 的性能要提高 1 ~ 2 个数量级

    • 更轻松的迁移和扩展

    Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑等等,同时支持主流的操作系统发行版本

    这种兼容性能让用户可以在不同的平台之间轻松的迁移应用

    • 更轻松的管理和更新

    使用 Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作

    所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的容器管理

     

    ③ Docker 与虚拟机的比较

    作为一种轻量级的虚拟化方式,Docker 在运行应用上跟传统的虚拟机的方式相比具有如下显著优势
    • Docker 容器启动很快,启动和停止可以实现秒级,相比传统的虚拟机方式(分钟级)要快速很多
    • Docker 容器对系统资源需求很少,一台主机上可以同时运行数千个 Docker 容器
    • Docker 通过类似 git 设计理念的操作来方便用户获取、分发和更新应用镜像,存储复用,增量更新
    • Docker 通过 Dockerfile 支持灵活的自动化创建和部署机制,可以提高工作效率,并标准化流程
    特性容器虚拟机
    启动速度 秒级 分钟级
    性能 接近原生 较好
    内存 MB级 GB级别
    硬盘适应 MB级 GB级别
    运行密度 单台主机支持上千个 单台主机支持几个
    隔离性 安全隔离 完全隔离
    迁移 优秀 一般
     

    3.Docker 与 虚拟化

    Docker 以及其他容器技术,都属于操作系统虚拟化范畴,操作系统细腻化最大的特点就是不需要额外的 supervisor 支持

    Docker 虚拟化方式之所以有众多优势,跟操作系统虚拟化技术自身的设计和实现分不开

    传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层

    Docker 容器时在操作系统层面实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级

     

    4.Docker概念

    Docker 中有三个核心概念:镜像、容器和仓库
    因此,准确把握这三大概念对于掌握 Docker 技术尤为重要
    名称释义
    镜像 启动容器的模板
    容器 对外提供服务的实例
    仓库 存放镜像的仓库
     

    ① 镜像(Image)

    Docker 镜像(Image),就相当于是一个 root 文件系统

    比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统

     

    ② 容器(Container)

    镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静 态的定义,容器是镜像运行时的实体

    容器可以被创建、启动、停止、删除、暂停等

     

    ③ 仓库(Repository)

    用来保存镜像的仓库

    当我们构建好自己的镜像之后,需要存放在仓库中,当我们需要启动一个镜像时, 可以在仓库中下载下来

     

    二:Docker安装

    Docker 引擎是使用 Docker 容器的核心组件,可以在主流的操作系统和云平台上使用,包括 Linux 操作系统、 Mac OS 和 Windows 系统上

    可以访问 Docker 官网(https://www.docker.com/get-started)去获取 Docker 安装包

     

    1.更换yum源

    Docker 目前支持 CentOS 7 及以后版本

    系统的要求跟 Ubuntu 情况类似,64 位操作系统,内核至少是 3.10 以上

     

    查看系统内核版本

    uname -a
     
     
     

    备份原来的yum源

    cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
     
     
     

    配置阿里源

    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
     
     
     

    缓存

    yum makecache
     
     
     

    更新系统

    yum update -y --exclud=kernel*
     
     

    2.安装Docker-CE

     

    docker 镜像是 docker 中三大概念之一,其主要作用是作为启动容器的模板

    https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11yBdclM

     

    安装必要的一些系统工具

    yum install -y yum-utils device-mapper-persistent-data lvm2
     
     
     

    添加软件源信息

    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
     
     
     

    更新并安装Docker-CE

    yum makecache fast
    yum -y install docker-ce
     
     

    开启Docker服务

    service docker start
     
    每天逼着自己写点东西,终有一天会为自己的变化感动的。这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。 Explicit is better than implicit.(清楚优于含糊)
  • 相关阅读:
    css 选择器
    IIS6、7添加反向代理的步骤
    使用脚本监控windows服务的方法
    ueditor编辑器插件 chrome中图片上传框延时问题
    Mysql隐式类型转换原则
    ASP.NET MVC 分页问题
    .NET程序集引用COM组件MSScriptControl所遇到的问题
    Makefile学习笔记
    操作系统的主要功能
    Linux基本命令之用户系统相关命令
  • 原文地址:https://www.cnblogs.com/kylin5201314/p/14320568.html
Copyright © 2011-2022 走看看