本节内容:

  • 背景
  • 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组件

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

(3)通过仓库安装Docker CE

安装依赖包

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

下载docker yum源

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

更新软件缓存

  1. [root@spark32 ~]# yum makecache fast

安装Docker CE

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

启动docker

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

查看docker版本信息

  1. [root@spark32 ~]# docker info
  2. Containers:
  3. Running:
  4. Paused:
  5. Stopped:
  6. Images:
  7. Server Version: 17.06.-ce
  8. Storage Driver: overlay

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

  1. [root@spark32 ~]# yum list docker-ce.x86_64 --showduplicates | sort -r
  2. [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来使用加速器:

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

四、卸载Docker CE

  1. # yum remove docker-ce
  2. # 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. UDP_TCP示意图

  2. python中的文件操作

    文件操作时,有'r','w','a'不同的操作类型,其中'r'只能读文件,seek(),tell()函数定位读的起始地方.'w'会清空文件内容然后写文件,seek(),tell()函数定位写的起始地方 ...

  3. 对硬盘进行分区时,GPT和MBR有什么区别?

    在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区.GPT是一种新的标准,并在逐渐取代MBR. GPT带来了很多新特性,但MBR仍然拥有最好的兼容性.GPT并不是W ...

  4. 项目Header组件的开发注意事项

    npm install stylus --save npm install stylus-loader --save 移动端一般采用rem布局方式 Header组件里iconfont的使用和代码优化: ...

  5. 贪心问题:区间覆盖 POJ 2376 Cleaning Shift

    题目:http://poj.org/problem?id=2376 题意:就是 N 个区间, 输入 N 个区间的 [begin, end],求能用它们覆盖区间[1,T]的最小组合. 题解: 1. 首先 ...

  6. APScheduler定时执行外加supervisor管理后台运行

    最近写的天气爬虫想要让它在后台每天定时执行,一开始用的celery,但不知道为什么明明设置cron在某个时间运行,但任务却不间断的运行.无奈转用apscheduler,但是不管怎么设置都不能使得当调用 ...

  7. 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合

    [题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...

  8. HDU 4521 小明系列问题——小明序列 (线段树 单点更新)

    题目连接 Problem Description 大家都知道小明最喜欢研究跟序列有关的问题了,可是也就因为这样,小明几乎已经玩遍各种序列问题了.可怜的小明苦苦地在各大网站上寻找着新的序列问题,可是找来 ...

  9. R的农场 chebnear

    评测传送门 Description最近,R 终于获得了一片他梦寐以求的农场,但如此大的一片农场,想要做好防卫工作可不是一件容易的事.所以 R 购买了 N 个守卫,分别让他们站在一定的位置上(守卫不可移 ...

  10. IIS 问题集锦

    本文主要记录IIS中遇到的各种问题以及注意事项 一.在IIS中.NET Framework的版本选择为什么没有v3.0,v3.5? 首先需要澄清的是这里有两个关于版本的东西:ASP.NET和.NET ...