在Centos系统上安装Docker社区版

前言

本文详细介绍了如在Centos系统上安装Docker的社区版本,为后面搭建学习和测试环境提供了基础。

什么是Centos

CentOS(Community Enterprise Operating System,社区企业操作系统)是Linux发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。

由于出自同样的源代码,因此有些要求 高度稳定性 的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS完全开源。

什么是Docker

Docker类似虚拟机,是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。

Docker分两个版本:

  • CE(Community Edition)
  • EE(Enterprise Edition)
  • CE版本是免费的,如果我们学习或者一般应用,CE足够。EE版本在 安全性 上有很大提升,是 收费 版本,可以试用一定时间。

    Docker容器和虚拟机的主要区别在于,虚拟机管理程序对 整个设备 进行抽象处理,而容器只是对 操作系统内核 进行抽象处理。相对于虚拟机,容器可以“丢弃没有用的99.9%的虚拟机垃圾,剩下一个小巧简洁的胶囊式容器,里面含有你的应用程序”。

    下面将介绍使用yum安装Docker。

    yum介绍

    Yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

    基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以 自动处理依赖性关系 ,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    卸载旧版本

    较旧的Docker版本称为 docker docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

    sudo yum docker, docker-client, docker-common
    sudo yum remove docker, docker-client, docker-client-latest, docker-common, docker-latest , docker-latest-logrotate, docker-logrotate , docker-engine
    

    更新yum

    此条命令升级所有包还有内核

    yum -y update
    

    若不升级内核,可输入

    yum -y upgrade
    

    Centos7装Docker的坑

    如果你的版本选择的是Centos7,恭喜你只要一步就可以安装完毕.

    yum -y install docker
    

    安装完毕后,直接跳到验证步骤吧。

    别急别急,先别跳,这个默认安装的docker版本号为1.13.1。

    查阅相关资料,Docker是在1.13.1后正式推出企业版(2017年),版本号也从此发生了变化,由原来的1.13.1升级到了17.03(即表示17年3月),从此Docker有了docker-eedocker-ce之分。

    前者为企业版,后者为社区版。社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

    再回头来看,这个1.13.1这个版本已经比较老了,2017年出的,现在都2020年了。所以装了此版本的,执行上面的卸载命令,装免费的社区版本吧。要不然遇到一些版本bug,让你哭死!

    好了,Centos8的用户等着不耐烦了,开始安装社区版本了。

    安装必备依赖项

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

    yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的包。

    添加yum的源

    为了安装docker的社区版本,需要给yum添加源,这里提供两种方式:

    1.添加国内源:

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

    2.添加官方源:

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

    这两个源下载的docker-ce.repo是一样的,执行上述其中一条命令后,就生成了 /ect/yum.repos.d/docker-ce.repo 这个文件,查看里面的内容,如图1所示。

    图1. 文件内容

    可以看到只有 [docker-ce-stable] 是启用的,即enabled=1,其他诸如 docker-ce-edge、docker-ce-test 都是禁用的。

    在这里说明一下,stable是Docker的一个版本意思,社区版按照stable和edge两种方式发布,每个季度更新stable版本,每个月份更新edge版本。

    另外,test版本是预发布版本,也就是下一个大版本的测试作品。

    如果需要启动docker-ce-edge,需要执行以下命令:

    sudo yum-config-manager --enable docker-ce-edge
    

    执行完后,再打开文件,可以看到 docker-ce-edge的enabled=1 了。

    如果要禁用,通过命令:

    sudo yum-config-manager --disable docker-ce-edge
    

    安装Docker CE

    确保成功添加源以后,可以愉快地安装Docker了。

    可以选择直接安装最新的Docker社区版本:

    sudo yum -y install docker-ce --nobest
    

    --nobest: use not only best candidate packages

    如果在生产环境,往往不是安装最新版本,而是安装指定版本,那么可以先通过如下命令查看版本:

    yum list docker-ce --showduplicates|sort -r
    

    可以看到如下结果:

    Hello from Docker! This message shows that your installation appears to be working correctly.

    设置Docker的开机自启

    设置为开机自动激活单元并现在立刻启动

    systemctl enable --now docker