• CentOS 7 安装Docker CE


    本节内容:

    • 背景
    • Moby项目
    • 安装Docker CE
    • 卸载Docker CE

    一、背景

    在搭建Registry的过程中,发现使用Docker 1.12版本,在push镜像到Registry时会报错误,几经查询解决之道无果后,去github的docker项目上提问,得到的回答是"Also note you appear running an unsupported version of docker which has changes specifically around how registries are handled.",并且建议我尝试较新的版本。在2017年4月份的DockerCon会议上,Docker公司直接将 Github 上原隶属于 Docker 组织的 Docker 项目,直接 transfer 到了一个新的、名叫 Moby 的组织下,并将其重命名为 Moby 项目。由此先来了解下这个Moby项目。

    二、Moby项目

    为什么会产生Moby这个项目呢?可以看到最近几年里面,在2015年之后的Docker 1.17版本之后,引入了很多的新特性,比如Network、runC等,Docker的组件越来越多,提供支持的场景也越来越复杂,比如微服务、机器学习、物联网等,所以Docker镜像的下载量也呈现指数型上升,最终Docker运行的环境,也是越来越复杂,越来越多,比如在Linux,Windows,还有在嵌入式设备上。

    所以Docker原本的发行版本已经不能适配于这些越来越复杂的场景了,举个例子,其实在IoT里面,树莓派的性能是比较好的,但是它去运行Docker的话,Docker就会占整个性能的一大部分,这样它上面就已经无法运行其他的一些自己的应用了,那用户要怎么去解决这些事情,难道自己去再写一个Docker容器引擎吗?这个成本是很高的,需要自己去造轮子。所以为了提供更加开放的生态,Docker公司把Docker项目中现在的一些组件抽象成Moby项目,这样系统构建者就可以通过Moby项目把现有的组件去进行组装,然后组装成自己所需要的一个容器引擎。

    Moby项目现在有80多个组件,通过这些组件,用户可以避免重复地去造轮子。用户可以按照自己的需要去组装组件,做出自己的一个容器系统。这些组件有一个标准化的调用方式,他们之间通过gRPC通信,它的语言也是可以去定制的,不会像之前一样必须用Go语言去写。通过标准化的方式,通过Moby这个项目就可以把这些组件进行组合,成为自己所依赖的容器系统。

    Docker项目现在改名成Moby项目,但是Docker会逐渐的从Moby项目中去抽象和剥离出来,作为Moby的一种组装方式,比如Docker依赖于这里面的一些库,它就特化成一种组装,组装成自己的Docker CE的版本,也就是Docker的社区版。Docker社区版后面也会继续做开源,所以用户和开发者不需要担心以后用Docker就会收费了,对于Docker用户来说,他也无须感知用户接口的变化,使用的命令还是Docker不是Moby,需要更多运维支持的可以选择Docker EE的版本,让Docker公司的工程师去替你去做运维和更复杂的线上支持,如果自己开发可以继续选择Docker社区版。对于架构师而言,现在就可以不强依赖于Docker项目,而是通过这些组件去拼装出来一个容器引擎去满足自己的需求。

    三、安装Docker CE

    1. 版本说明

    2017年2月份,Docker公司发布了全新的Docker版本:V1.13.0。从2017年3月1号开始,Docker的版本命名发生如下变化:

    项目 说明
    版本格式 YY.MM
    stable版本 每个季度发行
    edge版本 每个月发行

    同时将Docker分成CE和EE 2个版本。CE版本即社区版(免费,支持周期三个月),EE即企业版,强调安全,付费使用。

    Docker 会每月发布一个 edge 版本(17.03, 17.04, 17.05...),每三个月发布一个 stable 版本(17.03, 17.06, 17.09...),企业版(EE) 和 stable 版本号保持一致,但每个版本提供一年维护。

    Docker 的 Linux 发行版的软件仓库也从以前的https://apt.dockerproject.org和https://yum.dockerproject.org 变更为目前的 https://download.docker.com 。软件包名变更为 docker-ce(社区版) 和 docker-ee(企业版)。

    当前的CE版本为17.03.0,基于V1.13.0。主要修复错误,没有重大功能增加,API亦保持不变。本文以此版本安装。

    此版本的发行说明,请参考:https://github.com/docker/docker/releases

    2. 安装Docker

    官方安装文档:https://docs.docker.com/engine/installation/linux/docker-ce/centos/

    (1)环境要求

    To install Docker CE, you need the 64-bit version of CentOS 7.
    The centos-extras repository must be enabled. This repository is enabled by default, but if you have disabled it, you need to re-enable it.

    (2)卸载安装的所有Docker组件

    [root@spark32 lib]# systemctl stop docker.service
    [root@spark32 lib]# yum remove docker docker-common docker-selinux docker-engine container-selinux
    [root@spark32 lib]# rm -rf docker/

    (3)通过仓库安装Docker CE

    安装依赖包

    [root@spark32 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

    下载docker yum源

    [root@spark32 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    更新软件缓存

    [root@spark32 ~]# yum makecache fast

    安装Docker CE

    [root@spark32 ~]# yum install docker-ce -y

    启动docker

    [root@spark32 ~]# systemctl start docker.service

    查看docker版本信息

    [root@spark32 ~]# docker info
    Containers: 11
     Running: 7
     Paused: 0
     Stopped: 4
    Images: 14
    Server Version: 17.06.1-ce
    Storage Driver: overlay

    【注意】:在生产环境中,可能需要使用某一个特定版本的Docker,而不是使用最新的版本,我们可以先列出版本,然后安装指定版本:

    [root@spark32 ~]# yum list docker-ce.x86_64  --showduplicates | sort -r
    [root@spark32 ~]# yum install docker-ce-<VERSION>

    3. 配置镜像加速

    国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了加速器服务,例如:

    • 阿里云加速器
    • DaoCloud 加速器
    • 灵雀云加速器

    以阿里云加速器为例

    1.首先进入阿里云docker库首页(https://dev.aliyun.com/)

    注册用户并登录,点击右上角“管理中心”。如果第一次,会提示“您还没有开通服务”,点击“确定”,然后会出现弹窗“初始化设置”,设置docker登录时使用的密码。

    2.点击左侧菜单“Docker Hub镜像站点”,可以看到“您的专属加速器地址:https://6101v8g5.mirror.aliyuncs.com”,我们需要将其配置到Docker 引擎。

    3.修改daemon配置文件/etc/docker/daemon.json来使用加速器:

    [root@spark32 ~]# vim /etc/docker/daemon.json
    {
        "registry-mirrors": ["https://6101v8g5.mirror.aliyuncs.com"]
    }
    [root@spark32 ~]# systemctl daemon-reload
    [root@spark32 ~]# systemctl restart docker

    四、卸载Docker CE

    # yum remove docker-ce
    # rm -rf /var/lib/docker
  • 相关阅读:
    开源的web截图程序
    android开发 锁屏 真正的锁屏,是go锁屏那种。
    如何深拷贝一个对象数组?
    POJ1953 World Cup Noise
    DYD token “ 我们致力于让任何区块链资产可以立即花费 ”
    docker 从服务到pull镜像
    valheim:英灵神殿 关于1核2G内存服务器的搭建优化问题
    valheim:英灵神殿 服务器更新步骤
    valheim:英灵神殿 突破服务器人数上限
    Valheim:英灵神殿 服务器各种问题解答
  • 原文地址:https://www.cnblogs.com/zhaojiankai/p/7791770.html
Copyright © 2020-2023  润新知