本节内容:

  • 背景
  • 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. K8S调度之Taints and Tolerations

    Taints和Tolerations(污点和容忍) 在<K8S之节点亲和性>中,我们说到的的NodeAffinity节点亲和性,是在pod上定义的一种属性,使得Pod能够被调度到某些nod ...

  2. (转)tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  3. vue 开发过程中遇到的问题

    1. gitlab团队协作开发 2. element ui 问题集锦 3. 使用vue和ElementUI快速开发后台管理系统

  4. JavaScript中数组迭代方法

    文章来源 : https://www.cnblogs.com/shuiyi/p/5058524.html

  5. 蓝桥杯 算法提高 学霸的迷宫 经典BFS问题

      算法提高 学霸的迷宫   时间限制:1.0s   内存限制:256.0MB      问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城 ...

  6. SQL语句(二十)—— 数据库安全性

    数据库安全性 1. SQL Server 配置管理器  => 网络配置 MSSQLSERVER 协议,如果应用程序和SQL Server 在同一机器上,仅使用 Shared Memory (共享 ...

  7. python 12306 车次数据获取

    ssl._create_default_https_context = ssl._create_default_https_context train_data = '2018-10-20' head ...

  8. 网上整理的jQuery插件开发教程

    jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别 ...

  9. C++ Rule of Three

    Rule of Three The rule of three (also known as the Law of The Big Three or The Big Three) is a rule ...

  10. 微服务深入浅出(9)-- Nginx

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,处理请求是异步非阻塞的,多个连接(万级别)可以对应一个进程.而Apache是同步多进程模型,一个连接对 ...