前言

Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤。

Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10。

Docker 官网有安装步骤,本文只是记录一下,您也可以参考 Docker CE Install on CentOS

环境说明

CentOS 7(Minimal Install)

$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

准备工作

操作系统要求

CentOS 7 以后都可以安装 Docker 了,也可以确认一下。

$ uname -a
Linux localhost.localdomain 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Docker 需要用到 centos-extra 这个源,如果您关闭了,需要重启启用,可以参考 Available Repositories for CentOS

卸载docker 旧版本(第一步)

旧版本的 Docker 被叫做 docker 或 docker-engine,如果您安装了旧版本的 Docker ,您需要卸载掉它。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

旧版本的内容在 /var/lib/docker 下,目录中的镜像(images), 容器(containers), 存储卷(volumes), 和 网络配置(networks)都可以保留。

Docker CE 包,目前的包名为 docker-ce

安装

安装准备(第二步)

为了方便添加软件源,支持 devicemapper 存储类型,安装如下软件包

$ sudo yum update  #可不执行,该更新时间较长
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

添加 yum 软件源(第三步)

添加 Docker 稳定版本的 yum 软件源,即配置docker仓库

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

如果配置上面官方的docker仓库,在第四步安装docker会出现 “超时错误”,这是由于国内访问不到docker官方镜像的缘故

可以通过配置aliyun的源来完成:

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#出现以下内容则表示docker仓库配置成功:
Loaded plugins: fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

由于阿里的镜像库文件也指向docker官方库,所以需要修改库文件

$ sudo vim /etc/yum.repos.d/docker-ce.repo
通过命令把https://download-stage.docker.com替换为http://mirrors.aliyun.com/docker-ce

命令如下:
: %s#https://download-stage.docker.com#http://mirrors.aliyun.com/docker-ce#g

安装 Docker(第四步)

更新一下 yum 软件源的缓存,并安装 Docker。

$ sudo yum update
$ sudo yum install docker-ce

docker 镜像加速器(开挂下载) 

在pull docker镜像的时候却出现超时无法下载镜像的问题,估计是国内docker官方镜像被墙了,网上找了好久发现要使用国内镜像加速,推荐的有Daocloud阿里云,我使用的是Daocloud镜像加速,注册了账号之后上方会有一个镜像加速的超链接  (只要注册了账号就会有)

centos 向docker 传输文件_Docker

centos 向docker 传输文件_docker_02

(方式1)  DaoClould镜像加速器 执行 该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。

centos 向docker 传输文件_centos 7_03

 (方式2)阿里云 镜像加速器

至此,Docker 已经安装完成了,Docker 服务是没有启动的,操作系统里的 docker 组被创建,但是没有用户在这个组里。

注意

默认的 docker 组是没有用户的(也就是说需要使用 sudo 才能使用 docker 命令)。
您可以将用户添加到 docker 组中(此用户就可以直接使用 docker 命令了)。

加入 docker 用户组命令

$ sudo usermod -aG docker USER_NAME

用户更新组信息后,重新登录系统即可生效。

安装指定版本

如果想安装指定版本的 Docker,可以查看一下版本并安装。

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

可以指定版本安装,版本号可以忽略 : 和 el7,如 docker-ce-18.09.1

$ sudo yum install docker-ce-<VERSION STRING>

至此,指定版本的 Docker 也安装完成,同样,操作系统内 docker 服务没有启动,只创建了 docker 组,而且组里没有用户。

启动 Docker

如果想添加到开机启动

$ sudo systemctl enable docker

启动 docker 服务

$ sudo systemctl start docker

验证安装

验证 Docker CE 安装是否正确,可以运行 hello-world 镜像

$ sudo docker run hello-world

更新和卸载 Docker

使用 yum 管理,更新和卸载都很方便。

更新 Docker CE

$ sudo yum update docker-ce

卸载 Docker CE

$ sudo yum remove docker-ce

删除本地文件

注意,docker 的本地文件,包括镜像(images), 容器(containers), 存储卷(volumes)等,都需要手工删除。默认目录存储在 /var/lib/docker

$ sudo rm -rf /var/lib/docker

结论

本文演示了 CentOS 7 下 yum 安装 Docker CE 的步骤。