一、CentOS的环境要求
Docker要求CentOS的系统内核要高于3.10,通过uname -r指令查看自己的CentOS内核版本是否符合规定。
[root@c7m1 ~]# uname -r
上面表示本机内核是符合要求的。
二、安装Docker
1.移除旧版本
较旧版本的Docker被称为docker或docker-engine。如果已安装这些,请卸载它们以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
表示本机没有响应的软件包。
2.安装设置存储库
设置Docker的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法,但前提是该机器能够联网,本文采用这种方式安装。
在新主机上首次安装Docker CE之前,需要设置Docker存储库。之后,就可以从存储库安装和更新Docker。
执行以下指令,安装所需要的包:
yum install -y yum-utils device-mapper-persistent-data lvm2
如果需要的包成功安装:
3.设置稳定的存储库
在国内的开发环境中一般使用阿里云镜像,它的优点是快速、稳定:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
设置好新的存储库后,需要更新yum缓存:
yum makecache fast
如下图所示:
4.查看可安装的Docker版本
通过以下指令可以查看可安装的Docker版本:
yum list docker-ce --showduplicates | sort –r
在这里我们选择的是docker-ce-18.06.1.ce-3.el7版本:
5.安装指定版本的Docker
通过以下指令可以安装我们指定的Docker版本:
yum install -y --setopt=obsoletes=0 docker-ce-18.06.1.ce-3.el7
安装完成:
6.启动Docker
systemctl start docker
7.开机启动Docker
systemctl enable docker
8.测试运行Docker
docker run hello-world
第一次运行docker镜像就出现报错,这个错误的原因是由于本地没有hello-world镜像,然后需要在 docker hub上拉取镜像,但是由于国内网络问题,无法连接到 docker hub,因此会出现timeout错误。
解决方法如下:
首先,关闭Docker服务:
systemctl stop docker
新版的Docker使用 /etc/docker/daemon.json(Linux)来配置Daemon。如果没有这个文件先新建一个,然后在daemon.json文件中增加如下内容:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
然后,重启Docker服务:
systemctl start docker
最后,继续测试hello-world:
docker run hello-world
测试通过:
三、修改Docker根目录的位置
Docker默认的安装目录在/var/lib/docker:
如果需要切换该目录,可以进行如下操作:
1.关闭Docker服务:
systemctl stop docker
2.将/var/lib/docker复制到指定目录下,这里我放在了usr目录下:
cp -a /var/lib/docker /usr/
3.编辑/lib/systemd/system/docker.service文件:
vi /lib/systemd/system/docker.service
4.修改内容:
ExecStart=/usr/bin/dockerd --graph=/usr/docker
5.重启之后,再看docker info信息,可以看到文件位置发生改变: