前言: 网上很多关于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版本的先决条件
官方文档中有这样一段描述:
OS requirements
To install Docker CE, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested.
翻译过来的中文意思就是:
OS要求 要安装Docker CE,您需要维护的CentOS 7版本。不支持或测试归档版本。
官方推荐的系统是centos7以上,但其实centos6也是可以安装docker的,并没有强制必须是centos7。
但是我的文章是基于最新的centos7系统,所以对于低版本的centos系统如何安装docker,请自行网上查找资料或者实际操作。
卸载旧版本
老版本的Docker被称为docker
或docker-engine
。如果安装了它们,请卸载它们以及相关的依赖项。
在Linux命令行执行的命令如下:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
如下图所示,将上面的命令copy一下,并在Linux命令行下面直接回车运行:
如图中所示,最后出现 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。
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 使用以下命令设置稳定的存储库。 即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储库。
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- (可选):启用边缘和测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定的存储库一起启用。
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
- (可选):与上一步相反的作用。通过使用—disable标志运行yum-config-manager命令,可以禁用边缘或测试存储库。 要重新启用它,请使用—enable标志。 以下命令禁用边缘存储库。
yum-config-manager --disable docker-ce-edge
注意:从Docker 17.06开始,稳定版本也被推到边缘并测试版本库。
了解稳定和边缘构建 : https://docs.docker.com/install/
安装Docker CE
- 安装最新版本的Docker CE:
yum install docker-ce
如果命令行下面出现如下图所示的确认信息,请输入“y”继续,主要是用于处理依赖包的事情:
上一步输入“y”之后,后面可能会遇到下图所示的确认提示信息,同样的输入“y”即可:
稍作等待,当命令行最终输出“Complete!”即表示安装完成:
设置Docker镜像加速器
默认情况下,Docker服务会去国外的服务器上获取镜像,你懂的,网速不是一般的慢;
所以,建议大家配置一下国内的镜像加速服务,这里我就使用阿里云提供的免费的镜像加速服务了;
具体配置请见(文章开头就是Docker加速器配置的内容):
https://www.yuque.com/zhoubang/docker/docker-mysql-install
启动Docker
systemctl start docker
验证Docker是否安装成功
最简单的验证方式,就是使用 docker version 命令,类似于JDK的 java -version 一样的道理。 Docker安装成功的话,就可以直接在命令行运行Docker的命令的。
docker version
如果出现如下图所示信息,说明Docker以及安装成功了!
【可选】:当然,你也可以通过运行 hello-world 映像来检验Docker是否安装成功:
docker run hello-world
上面的命令含义:下载官方提供的用于测试使用的hello-world镜像并将其运行到容器中,来检验Docker服务是否正常安装并运行。
执行上面的命令之后,Docker会自动下载hello-world镜像并自动运行到容器中,当命令行中出现“Hello from Docker!”的字样,说明已经成功运行了hello-world镜像,一切就OK了!
这里就简单的作为Docker的入门操作,很简单的吧。让你有一个比较直观的感觉~
Docker默认挂载目录
Docker CE安装成功之后,你可以发现 /var/lib 目录下有一个 docker 目录,你可以进入Docker目录查看Docker的一些结构,如下图所示:
其中有一个containers 目录,这个目录就是存放Docker容器的。上面我们有提及到 hello-world 镜像,如果你运行了 hello-world 镜像,那么这个镜像所生成的容器信息,就会存储在 containers 目录中。
具体 containers 目录中存放了什么内容,可自行网上查询资料学习。
配置Docker在系统启动时启动
未配置Docker在系统启动时启动,则系统重启之后,Docker服务是无法正常访问
这里是使用我的阿里云服务器作为测试,在阿里云的后台系统中手动重启了服务器,服务器启动完成并正常运行后,在我的本地电脑使用客户端软件连接Linux服务器的时候(可以使用XShell、或者其他终端软件),通过执行 docker version 命令查看Docker服务运行状况,如下图结果:
从图中可以看到,Docker Server 没有正常启动,原因很简单,就是没有设置Docker在服务器重启之后,没有自动启动导致。
如何解决?
手动启动Docker服务:
1、通过在命令行中执行以下命令,即可实现Docker服务的启动:
systemctl start docker
这时候重新在命令行中执行 docker version命令,效果如下:
出现Server相关的信息,标明Docker服务正常启动了,就可以对Docker进行一系列操作。
上面这种启动方式存在什么不足呢?
当服务器重启的时候,Docker服务依然不能自动启动,还是需要手工去启动Docker服务。
那能不能做到系统重启之后,Docker服务自动启动,答案肯定是有的。
实现Docker服务随着系统重启后自动启动
大多数当前的Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)使用systemd来管理在系统启动时启动哪些服务。
通过在命令行执行以下命令,用于设置Docker在系统重启时,自动启动Docker服务
systemctl enable docker
执行该命令之后,会显示如下结果: 主要的意思就是 设置Docker服务会随着服务器重启,会自动启动Docker服务。
当然,执行该命令之后,对于当前的Docker服务状况是没有启动服务的,需要手动启动Docker服务;只有下次服务器重启,就无需手动启动Docker服务了。
官方文档介绍: https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot
注意一点:由于Linux不同版本的系统的差异、或者低版本的系统,命令或许会出现差异。如有遇到这样的问题,请自行网上查找资料解决。
取消Docker服务随着系统重启后自动启动
如果你不想让Docker服务随着系统重启之后自动启动的话,你可以通过命令来取消这样的策略:
systemctl disable docker
执行上面的命令,就可以了。
官方文档介绍:https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot
卸载Docker CE
如果需要卸载机器上已经安装的Docker CE,可以通过简单命令实现。
- 卸载Docker包:
yum remove docker-ce
- 上面的命令,不会自动删除主机上的图像,容器,卷或自定义配置文件。要想删除所有图像,容器和卷,执行以下命令:
rm -rf /var/lib/docker
注意:您必须手动删除任何已编辑的配置文件