本文所属【知识林】:http://www.zslin.com/web/article/detail/4

如果没有Centos的操作系统可以安装虚拟机也可以直接在Windows8.1以上的操作系统中安装使用Docker,可参照文档《Windows 8 安装Docker

  • 查看系统版本,命令: lsb_release -a

[root@localhost ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.4 (Final)
Release:        6.4
Codename:       Final

可以看出是64位的CentOs 6.4版本的操作系统

  • 查看内核,命令: uname -a

[root@localhost ~]# uname -a
Linux localhost 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

可以看出内核版本是2.6.32的,由于Docker是一门较新的技术,所以对系统的要求也是比较新的,Docker需要在内核版本至少在3.0以后的版本中运行,所以第一步工作则是升级Centos的内核版本。

  • 依次使用以下命令升级Centos内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-lt

升级完成后可以在文件/etc/grub.conf看到内核为3.10.103的配置信息,使用命令more /etc/grub.conf即可查看:

……
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.103-1.el6.elrepo.x86_64)
        root (hd0,0)
        kernel /vmlinuz-3.10.103-1.el6.elrepo.x86_64 ro root=UUID=94dcb85c-81c7-45ec-a005-6b895f12961b rd_NO_LUKS  KEYBOARDTYPE=pc KEYTAB
LE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
        initrd /initramfs-3.10.103-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=94dcb85c-81c7-45ec-a005-6b895f12961b rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us r
d_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-358.el6.x86_64.img

在这个配置文件中可以看到有两个内桥版本,第一个(下标为0)版本为3.10.103,也就是刚刚升级所产生的,第二个(下标为1)版本为2.6.32,这是系统原生的内桥版本,但可以看到上面有default 1,即表示系统默认使用下标为1的内核,所以我们只用将default 1修改为default 0即可。修改后保存退出并重启即可使用高版本的内核启动操作系统(重启系统命令:reboot)。

  • 查看升级情况,命令:uname -a

[root@localhost ~]# uname -a
Linux localhost 3.10.103-1.el6.elrepo.x86_64 #1 SMP Sun Aug 28 16:41:49 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

可以看出现在的内核版本已经是3.10.103版本的了。

  • 更新几个工具

依次输入以下命令:

yum clean all
yum update glibc* yum* rpm* python*
yum update

安装过程中需要根据提示输入几次 y 以确定升级,完成后输入命令 reboot 重启服务器。

  • 安装Docker

Docker官方网站 中可以找到相应的安装说明,上面讲述了两种安装方法:

Install with yum:这个方法主要对Centos7以上版本使用。
Install with the script:使用脚本方式安装Docker

使用命令curl -fsSL https://get.docker.com/ | sh安装Docker

[root@localhost ~]# curl -fsSL https://get.docker.com/ | sh
+ sh -c 'sleep 3; yum -y -q install docker-engine'
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID 2c52609d: NOKEY
Importing GPG key 0x2C52609D:
 Userid: "Docker Release Tool (releasedocker) <docker@docker.com>"
 From  : https://yum.dockerproject.org/gpg

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

这里有提示:sudo usermod -aG docker your-user 需要修改一些用户的权限,我这里是使用的root用户,所以我可以使用以下命令修改:
sudo usermod -aG docker root

安装完成后输入docker --version 查看Docker的版本:

[root@localhost ~]# docker --version
Docker version 1.7.1, build 786b29d
  • 查看Docker的镜像

    命令:docker images 看到:
[root@localhost ~]# docker images
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

表示Docker服务未启动,service docker start 启动Docker服务,但再运行docker images时还是出现上面的提示,可以使用service docker status查看Docker的服务状态:

[root@localhost ~]# service docker status
docker 已死,但 pid 文件仍存

说明Docker无法在该系统是正常启动,需要去此操作系统升级。

  • 升级Centos到6.8

报着猜测的心态,假设Docker无法在Centos6.4版本中运行,那么先将Centos升级到较高版本。

再次执行 yum update,将会升级操作系统(又是一个漫长的等待),此过程根据网速决定更新的速度,我花了差不多1小时的时间来更新,更新完成后可以通过命令 lsb_release -a 验证:

[root@localhost ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.8 (Final)
Release:        6.8
Codename:       Final

出现上面信息则说明系统已经从6.4升级到6.8了,此时可以启动Docker服务:

[root@localhost ~]# service docker start
Starting docker:                                           [确定]
[root@localhost ~]# service docker status
docker (pid  22546) 正在运行...

现在再使用Docker的相关命令就不再会出现烦人的无法连接Docker提示信息了!

注意:

  1. Centos 可以较方便的从6.4升级到6.8版本,且数据不会丢失。
  2. 从上面这个例子可以看出,Docker无法在Centos6.4版本中运行,其支持的最低版本是Centos6.8(这个不太确定,但需要将系统升级到6.8才能启动Docker服务)。
  3. 在Centos6版本中只能安装Docker 1.7.1版本,即使使用 yum update docker 也无法升级Docker版本,要安装更高版本的Docker则需要升级Centos到7以上。
本文所属【知识林】:http://www.zslin.com/web/article/detail/4
文章点评共:2 条
点评内容: 提交点评

10-25 点评:tertt

10-27 回复:您的点评能通俗一点吗?

10-25 点评:rew

10-27 回复:大哥,小弟看不懂你的点评啊