在centos系统中安装Docker - 图1

前言: 网上很多关于docker在centos系统上的安装教程,但是又各有异同,比较混乱。所以,此文章接下来的对于docker的安装,将参照官方的文档进行安装。

官方文档地址: https://docs.docker.com/install/linux/docker-ce/centos/

Docker版本

Docker如今划分成了2个版本:

  • Docker CE(社区版)
  • Docker EE(企业版)

具体详情以及区别,就不多做说明了。我们一般都会选择Docker CE(社区版),因为CE版本是开源免费的。对于大多数企业公司都比较节约成本。 因此,文章中所使用的Docker版本均为Docker CE版本。

安装Docker CE版本的先决条件

官方文档中有这样一段描述:

  1. OS requirements
  2. To install Docker CE, you need a maintained version of CentOS 7. Archived versions arent supported or tested.

翻译过来的中文意思就是:

OS要求 要安装Docker CE,您需要维护的CentOS 7版本。不支持或测试归档版本。

官方推荐的系统是centos7以上,但其实centos6也是可以安装docker的,并没有强制必须是centos7。
但是我的文章是基于最新的centos7系统,所以对于低版本的centos系统如何安装docker,请自行网上查找资料或者实际操作。

卸载旧版本

老版本的Docker被称为dockerdocker-engine。如果安装了它们,请卸载它们以及相关的依赖项。

在Linux命令行执行的命令如下:

  1. yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-selinux \
  9. docker-engine-selinux \
  10. docker-engine

如下图所示,将上面的命令copy一下,并在Linux命令行下面直接回车运行:
在centos系统中安装Docker - 图2

如图中所示,最后出现 No Packages marked for removal 的提示信息,说明没有需要删除的资源包了,标明旧版本的docker资源包以及相关依赖包都已经删除掉了。

安装Docker CE

Docker CE安装的不同方式

  • 设置Docker的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法。
  • 有些用户下载RPM软件包并手动安装,并完全手动管理升级。这对于在无法访问互联网的系统上安装Docker等情况很有用。
  • 在测试和开发环境中,一些用户选择使用自动便利脚本来安装Docker。

这里我们就选择第一种方式进行安装,这也是推荐的做法。 至于其他的安装方式,可自行网上学习,这里不做过多讲解。

使用存储库进行安装

首次在新主机上安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

  • 安装所需的包。 yum-utils提供yum-config-manager实用程序,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2。

    1. yum install -y yum-utils \
    2. device-mapper-persistent-data \
    3. lvm2
  • 使用以下命令设置稳定的存储库。 即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储库。

    1. yum-config-manager \
    2. --add-repo \
    3. https://download.docker.com/linux/centos/docker-ce.repo
  • (可选):启用边缘和测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定的存储库一起启用。

    1. yum-config-manager --enable docker-ce-edge
    1. yum-config-manager --enable docker-ce-test
  • (可选):与上一步相反的作用。通过使用—disable标志运行yum-config-manager命令,可以禁用边缘或测试存储库。 要重新启用它,请使用—enable标志。 以下命令禁用边缘存储库。

    1. yum-config-manager --disable docker-ce-edge

    注意:从Docker 17.06开始,稳定版本也被推到边缘测试版本库。

了解稳定和边缘构建 : https://docs.docker.com/install/

安装Docker CE

  1. 安装最新版本的Docker CE:
    1. yum install docker-ce

如果命令行下面出现如下图所示的确认信息,请输入“y”继续,主要是用于处理依赖包的事情:
在centos系统中安装Docker - 图3

上一步输入“y”之后,后面可能会遇到下图所示的确认提示信息,同样的输入“y”即可:
在centos系统中安装Docker - 图4

稍作等待,当命令行最终输出“Complete!”即表示安装完成:
在centos系统中安装Docker - 图5

设置Docker镜像加速器

默认情况下,Docker服务会去国外的服务器上获取镜像,你懂的,网速不是一般的慢;
所以,建议大家配置一下国内的镜像加速服务,这里我就使用阿里云提供的免费的镜像加速服务了;

具体配置请见(文章开头就是Docker加速器配置的内容):
https://www.yuque.com/zhoubang/docker/docker-mysql-install

启动Docker

  1. systemctl start docker

验证Docker是否安装成功

最简单的验证方式,就是使用 docker version 命令,类似于JDK的 java -version 一样的道理。 Docker安装成功的话,就可以直接在命令行运行Docker的命令的。

  1. docker version

如果出现如下图所示信息,说明Docker以及安装成功了!
在centos系统中安装Docker - 图6

【可选】:当然,你也可以通过运行 hello-world 映像来检验Docker是否安装成功:

  1. docker run hello-world

上面的命令含义:下载官方提供的用于测试使用的hello-world镜像并将其运行到容器中,来检验Docker服务是否正常安装并运行。

执行上面的命令之后,Docker会自动下载hello-world镜像并自动运行到容器中,当命令行中出现“Hello from Docker!”的字样,说明已经成功运行了hello-world镜像,一切就OK了!

这里就简单的作为Docker的入门操作,很简单的吧。让你有一个比较直观的感觉~在centos系统中安装Docker - 图7

在centos系统中安装Docker - 图8

Docker默认挂载目录

Docker CE安装成功之后,你可以发现 /var/lib 目录下有一个 docker 目录,你可以进入Docker目录查看Docker的一些结构,如下图所示:
在centos系统中安装Docker - 图9
其中有一个containers 目录,这个目录就是存放Docker容器的。上面我们有提及到 hello-world 镜像,如果你运行了 hello-world 镜像,那么这个镜像所生成的容器信息,就会存储在 containers 目录中。

具体 containers 目录中存放了什么内容,可自行网上查询资料学习。

配置Docker在系统启动时启动

未配置Docker在系统启动时启动,则系统重启之后,Docker服务是无法正常访问

这里是使用我的阿里云服务器作为测试,在阿里云的后台系统中手动重启了服务器,服务器启动完成并正常运行后,在我的本地电脑使用客户端软件连接Linux服务器的时候(可以使用XShell、或者其他终端软件),通过执行 docker version 命令查看Docker服务运行状况,如下图结果: 在centos系统中安装Docker - 图10

从图中可以看到,Docker Server 没有正常启动,原因很简单,就是没有设置Docker在服务器重启之后,没有自动启动导致。

如何解决?

手动启动Docker服务:

1、通过在命令行中执行以下命令,即可实现Docker服务的启动:

  1. systemctl start docker

这时候重新在命令行中执行 docker version命令,效果如下: 在centos系统中安装Docker - 图11

出现Server相关的信息,标明Docker服务正常启动了,就可以对Docker进行一系列操作。

上面这种启动方式存在什么不足呢?

当服务器重启的时候,Docker服务依然不能自动启动,还是需要手工去启动Docker服务。

那能不能做到系统重启之后,Docker服务自动启动,答案肯定是有的。

实现Docker服务随着系统重启后自动启动

大多数当前的Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)使用systemd来管理在系统启动时启动哪些服务。

通过在命令行执行以下命令,用于设置Docker在系统重启时,自动启动Docker服务

  1. systemctl enable docker

执行该命令之后,会显示如下结果: 在centos系统中安装Docker - 图12 主要的意思就是 设置Docker服务会随着服务器重启,会自动启动Docker服务。

当然,执行该命令之后,对于当前的Docker服务状况是没有启动服务的,需要手动启动Docker服务;只有下次服务器重启,就无需手动启动Docker服务了。

官方文档介绍: https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot

注意一点:由于Linux不同版本的系统的差异、或者低版本的系统,命令或许会出现差异。如有遇到这样的问题,请自行网上查找资料解决。

取消Docker服务随着系统重启后自动启动

如果你不想让Docker服务随着系统重启之后自动启动的话,你可以通过命令来取消这样的策略:

  1. systemctl disable docker

执行上面的命令,就可以了。

官方文档介绍:https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot

卸载Docker CE

如果需要卸载机器上已经安装的Docker CE,可以通过简单命令实现。

  1. 卸载Docker包:

    1. yum remove docker-ce
  2. 上面的命令,不会自动删除主机上的图像,容器,卷或自定义配置文件。要想删除所有图像,容器和卷,执行以下命令:

    1. rm -rf /var/lib/docker

注意:您必须手动删除任何已编辑的配置文件

转载 https://www.yuque.com/zhoubang/docker/rqspmt