Fork me on GitHub

在Centos系统中安装Docker

目录

前言:

网上很多关于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
2
3
> 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命令行执行的命令如下:

1
2
3
4
5
6
7
8
9
10
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命令行下面直接回车运行:

在Centos系统中安装Docker

如图中所示,最后出现 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
2
3
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
  • 使用以下命令设置稳定的存储库。 即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储库。
1
2
3
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
  • (可选):启用边缘和测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定的存储库一起启用。
1
2
yum-config-manager --enable docker-ce-edge
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

上一步输入“y”之后,后面可能会遇到下图所示的确认提示信息,同样的输入“y”即可:

在Centos系统中安装Docker

稍作等待,当命令行最终输出“Complete!”即表示安装完成:

在Centos系统中安装Docker

启动Docker

1
systemctl start docker

验证Docker是否安装成功

最简单的验证方式,就是使用 docker version 命令,类似于JDK的 java -version 一样的道理。

Docker安装成功的话,就可以直接在命令行运行Docker的命令的。

1
docker version

如果出现如下图所示信息,说明Docker以及安装成功了!

在Centos系统中安装Docker

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

1
docker run hello-world

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

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

这里就简单的作为Docker的入门操作,很简单的吧。让你有一个比较直观的感觉~

在Centos系统中安装Docker

Docker默认挂载目录

Docker CE安装成功之后,你可以发现 /var/lib 目录下有一个 docker 目录,你可以进入Docker目录查看Docker的一些结构,如下图所示:

在Centos系统中安装Docker

其中有一个containers 目录,这个目录就是存放Docker容器的。上面我们有提及到 hello-world 镜像,如果你运行了 hello-world 镜像,那么这个镜像所生成的容器信息,就会存储在 containers 目录中。

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

配置Docker在系统启动时启动

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

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

在Centos系统中安装Docker

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

如何解决?

手动启动Docker服务:

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

1
2
> systemctl start docker
>

这时候重新在命令行中执行 docker version命令,效果如下:

在Centos系统中安装Docker

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

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

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

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

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

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

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

1
2
> systemctl enable docker
>

执行该命令之后,会显示如下结果:

在Centos系统中安装Docker

主要的意思就是 设置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
  1. 上面的命令,不会自动删除主机上的图像,容器,卷或自定义配置文件。要想删除所有图像,容器和卷,执行以下命令:
1
rm -rf /var/lib/docker

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

shell一键安装

1
2
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

这样执行完了就完成安装了,简单便捷

然后启动docker

1
sudo systemctl start docker

完美!鼓掌!!

相关文章

微信打赏

赞赏是不耍流氓的鼓励