Linux-Docker更改数据存储位置

Docker容器化技术为我们管理服务提供了有效的的有段,所以在服务器上使用docker或多或少成了我们默认的选择,然鹅,在配置过程中,难免会遇到一些问题,所以,欲戴王冠,必承其重,解决这些问题是我们绕不过去的一条路。

我在配置docker的时候,就准备将docker默认的存储位置更改到服务器上一块比较大的磁盘上去,避免容器或镜像增多后带来的存储问题,那么首先要解决的是,怎么修改存储位置呢?
在服务器上执行docker info(需要先把docker程序启动起来才能查看),显示的信息中会有一项Docker Root Dir: /var/lib/docker,这是rpm安装默认的存储位置,这也是我们需要修改的地方。
关于修改默认的存储位置,有很多方式,我选择了其中最简单的一个,也比较倾向于这一种:修改docker的配置文件
以下描述都是基于rpm安装方式。
/etc/docker目录下有一个配置文件daemon.json(如果没有,自己创建一个新的),里面默认是一个空的json{},我们需要在其中添加一行配置,如下:

{
  "data-root":"你想要的路径"
}

修改之后,就可以重启一下docker服务了,systemctl restart docker,如果不生效的话,可以在重启之前把docker服务停掉,执行systemctl daemon-reload,然后再启动docker,这时候再查看docker info就发现Docker Root Dir已经是我们指定的目录了。


分割线,成功的童鞋可以关掉了:
当然,此刻可以欢呼雀跃,但有的人却愁容满面,比如我,又遇到了一个错误,docker启动不起来,报错是:unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuratio...: data-root;
查看这个完整的错误描述,也不过是不识别data-root配置,我一度以为是不是写错了,或者json格式不正确,然鹅,当我翻看官方文档之后,确定就是这么写,那么何错之有?
在一番搜索和研究之后,得出结论:docker版本太低了
linux上yum(以centos为例),默认安装的docker是1.13版本(大概是这个),去官网看看,都19.*了,我这是落后了一个时代啊,好吧,重装一个新的吧,先把老的都卸载干净了,rpm -qa | grep docker检查检查,别漏下什么上古遗迹。
网上大多用的阿里源,我也照用了:yum-config-manager --add-repo [https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo](https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)
装好源之后(注意啊,上面的源对应的docker-ce,也就是社区版),就可以yum install docker-ce了,装好之后在修改就是刚才的步骤,到此就结束了,终于,我笑出了鹅叫声,鹅鹅鹅鹅鹅鹅...

你可能感兴趣的:(Linux-Docker更改数据存储位置)