如何在CentOS 7中安装Docker

1. 升级Linux内核到4.0+

据Docker官方的说法:OverlayFS比AUFS更快,而且简单。OverlayFS包括overlay和overlay2,overlay2比overlay在inode的利用上效率更高。

因此,我们选择overlay2。

1.1 先决条件

  1. linux内核4.0+
  2. linux磁盘格式为ext4或xfs

1.2 升级内核

  1. 查看linux内核版本

    [root@iZ11lymhp8xZ ~]# uname -r 
    3.10.0-123.9.3.el7.x86_64 
    

    如果版本是4.0以上,直接跳出1.2章节。

  2. 安装ELRepo仓库

    ELRepo官网找到相应的镜像点,然后如下安装(我这里用的是清华大学镜像站):

    rpm -Uhv https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 
    
  3. yum升级内核

    yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y
    
  4. 修改启动顺序

    到这一步的时候,输入uname -r 看内核版本,还是原来的,需要修改启动顺序并重启才能生效。

    查看有几个内核?

    cat /boot/grub2/grub.cfg |grep menuentry
    

    将4.0+的内核改成默认启动

    grub2-set-default "CentOS Linux (4.13.0-1.el7.elrepo.x86_64) 7 (Core)" 
    

    查看顺序是否正确

    grub2-editenv list
    

    重启

    reboot
    

    重启后uname -r查看是否生效。

安装Docker

  1. 下载最新版的Docker rpm包

    wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.1.ce-1.el7.centos.x86_64.rpm
    //也可以从镜像地址
    wget http://d.3651it.com/soft/docker/docker-ce-17.09.1.ce-1.el7.centos.x86_64.rpm
    
  2. yum安装

    yum -y install docker-ce-17.09.1.ce-1.el7.centos.x86_64.rpm
    
  3. 启动Docker

    查看Docker服务状态

    systemctl list-unit-files|grep docker
    

    如果显示

    docker.service             disabled
    

    设置为开机启动

    systemctl enable docker.service
    

    启动

    systemctl start docker.service
    
  4. 测试Docker是否安装成功

    docker run hello-world
    

    如果出来下面这样的返回,说明安装成功:

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    ca4f61b1923c: Pull complete 
    Digest: sha256:445b2fe9afea8b4aa0b2f27fe49dd6ad130dfe7a8fd0832be5de99625dad47cd
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)
    3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
    https://cloud.docker.com/
    
    For more examples and ideas, visit:
    https://docs.docker.com/engine/userguide/
    
  5. 查看Docker信息,存储驱动是否是overlay2

    docker info|grep Storage
    

    如果返回:

    Storage Driver: overlay2
    

    说明overlay2驱动已经安装好了。(目前overlay2已经是最新版docker的默认文件驱动,取代了之前的AUFS和devicemapper的地位,所以安装最新版默认就有了,不用配置)

    自然,overlay2模块已经加载了,可以通过一下命令查看:

    //查看是否有overlay模块
    lsmod|grep overlay
    //查看模块信息
    modinfo overlay
    
  6. 更换镜像,加速下载

    docker官方的镜像下载是非常慢的,可以使用国内的镜像加速器。

    您可以注册一个阿里云的账号,然后开通“容器镜像服务”,阿里云会提供一个加速地址。

    修改容器服务配置:

    vi /lib/systemd/system/docker.service
    

    修改

    ExecStart=/usr/bin/dockerd
    

    ExecStart=/usr/bin/dockerd --registry-mirror=https://fbw72taj.mirror.aliyuncs.com
    

    然后重启容器服务

    systemctl daemon-reload
    systemctl restart docker