Docker 301 - Change Default Storage Location

docker

在阿里云的标准 ECS 上长时间实践中,发现一个问题,就是系统盘的大小很快就容易被写满了,于是不得不将 docker 的 image 默认位置进行修改,将文件写入到一个新的自定义的挂载点上。


## 阿里云配置实践

- 配置 EC 数据盘

新加的 100G 数据盘,是不会主动挂载的,需要手工操作,见:

我们将数据盘挂载到 /data,用于保存 Docker 的 Image 和数据使用。


## 指向 Docker 数据位置到 `/data` 上

文档参见:

Docker 1.12 新版本中,用了一个新的配置文件(如果文件不存在,可自行创建)。

/etc/docker/daemon.json

示例:

1
2
3
4
{
"graph": "/data/docker",
"registry-mirrors": ["http://[id].m.daocloud.io"]
}

重启后生效

1
$ service docker restart

旧的方法

如果你还能在网络上看到下面的这种配置方式,请知晓,这是一种很老的配置,已经被废弃了:

Docker 启动时,会读取一个配置文件,在 Ubuntu 中,位于 /etc/default/docker,通过设置 --graph 来改变 Docker 的存取位置。

DOCKER_OPTS=”$DOCKER_OPTS –graph=/data/docker”


## 新的目录结构

–-graph=/data/docker,会自动生成 /data/docker 目录(0700),并在该目录下创建 docker 相关文件。

1
2
3
4
5
6
7
8
9
.
|-- aufs
|-- containers
|-- image
|-- network
|-- swarm
|-- tmp
|-- trust
`-- volumes

## REF:: ---