本节内容:

  • 背景
  • 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:
Running:
Paused:
Stopped:
Images:
Server Version: 17.06.-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

CentOS 7 安装Docker CE的更多相关文章

  1. CentOS下安装Docker CE教程

    一.安装前准备 1.硬件要求 CentOS 7(64-bit),内核版本不能低于3.10: CentOS 6.5(64-bit或更新的版本),内核版本为 2.6.32-431 或者更高版本,一般不建议 ...

  2. Docker入门之 - 如何安装Docker CE

    原文:Docker入门之 - 如何安装Docker CE 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012055638/article/det ...

  3. CentOS安装Docker CE

    安装Docker CE(免费版) docker EE企业版您可以根据需要以不同方式安装Docker CE: 大多数用户 设置Docker的存储库并从中进行安装,以便于安装和升级任务.这是推荐的方法. ...

  4. CentOS 安装 Docker CE

    准备工作 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overla ...

  5. (一) CentOS 7 进行 Docker CE 安装

    参考并感谢 官方文档: https://docs.docker.com/install/linux/docker-ce/centos/ 卸载旧版本 # 停止所有正在运行的容器 docker stop ...

  6. CentOS安装docker ce的三种方式

    参考文章: CentOS安装docker ce的三种方式: 1.环境 CentOS Linux release 7.6.1810 (Core) 2.卸载旧版本 sudo yum remove dock ...

  7. Centos7安装Docker CE

      每次安装Docker都要去找文档,或者每次安装的都不一样,还是要好好管理自己的这些东西,下次用的时候可以省很多的时间   Docker的早期版本称为docker或docker-engine:现在的 ...

  8. centos7 下安装Docker CE

    前提条件 操作系统要求 要保证centos-extrasrepository开启(enabled).默认处于开启状态. 推荐使用overlay2存储驱动 卸载老版本 $ sudo yum remove ...

  9. CentOS_mini下安装docker 之 安装docker CE

    警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. 原文地址:https://yeasy.gitbooks.io/docker_practice/inst ...

随机推荐

  1. 执行composer install 报错的解决办法

    执行composer install后报以下错误: Loading composer repositories with package informationInstalling dependenc ...

  2. Python高手之路【四】python函数装饰器,迭代器

    def outer(func): def inner(): print('hello') print('hello') print('hello') r = func() print('end') p ...

  3. Navicat数据备份

    备份:点击数据库---数据传输 目标:备份地点,数据会传送到yaozh_backup 数据传输成功

  4. vue 倒计时返回首页

    1. vue页面15分钟无操作时返回首页 2. 基于vue的倒计时demo 3. 在vue2.0项目中一个简单的倒计时功能 4. vue重新发送验证码 5. 表格<td>里面文字垂直显示

  5. [NOI1997] 积木游戏

    COGS 261. [NOI1997] 积木游戏 http://www.cogs.pro/cogs/problem/problem.php?pid=261 ★★   输入文件:buildinggame ...

  6. js截取字符串substr和substring的区别

    定义substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符.substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法substr()        str ...

  7. HDU 1073 Online Judge (字符串处理)

    题目链接 Problem Description Ignatius is building an Online Judge, now he has worked out all the problem ...

  8. faskclick

        PC网页上的大部分操作都是用鼠标的,即响应的是鼠标事件,包括mousedown.mouseup.mousemove和click事件.一次点击行为,事件的触发过程为:mousedown -> ...

  9. [转]closed-form solution (闭合解/解析解)和数值解的理解

    参考整理自:http://hi.baidu.com/cjb366/item/7290773b2d2eb9f2a9842873 closed-form solution :一般翻译为闭合解/解析解.这一 ...

  10. Linux下如何在进程中获取虚拟地址对应的物理地址【转】

    转自:http://blog.csdn.net/kongkongkkk/article/details/74366200 如果让你编写一个程序,来获取虚拟地址对应的物理地址..你会试着操作MMU吗.. ...