前言
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镜像加速,注册了账号之后上方会有一个镜像加速的超链接 (只要注册了账号就会有)
(方式1) DaoClould镜像加速器 执行 该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。
(方式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 的步骤。