站点图标 Liao's blog

Centos7安装Docker并更改默认存储文件位置

CentOS7安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum update

3、卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
或
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

#刷新缓存
yum makecache fast

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

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

7、安装docker

yum install docker-ce 或 yum install docker-ce-18.06.3.ce
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.06.3.ce
yum install <FQPN>  # 例如:sudo yum install docker-ce-18.06.3.ce

8、启动并加入开机启动

systemctl start docker 
systemctl enable docker 

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version 


(我已经自行升级到最新20版本)

二、更改docker默认存储位置

方法一:软连接

默认情况下Docker的存放位置为:/var/lib/docker
可以通过下面命令查看具体位置:

docker info | grep "Docker Root Dir"

解决这个问题,最直接的方法当然是挂载分区到这个目录,但是我的数据盘还有其他东西,这肯定不好管理,所以采用修改镜像和容器的存放路径的方式达到目的。
这个方法里将通过软连接来实现。
首先停掉Docker服务:

systemctl stop docker

然后移动整个/var/lib/docker目录到目的路径:

mv /var/lib/docker  /home/docker
ln -s /home/docker  /var/lib/docker

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。

方法二:修改docker.service

关闭docker服务

systemctl stop docker.service

移动数据到新的目录

mv /var/lib/docker /home/docker

修改docker.service文件,使用-g参数指定存储位置

vi /usr/lib/systemd/system/docker.service  
ExecStart=/usr/bin/dockerd --graph /home/docker 

reload配置文件

systemctl daemon-reload 

重启docker

systemctl restart docker.service

查看数据目录

docker info | grep Dir

卸载docker

yum remove docker-ce
sudo rm -rf /var/lib/docker
退出移动版