在linux平台下,docker默认的数据存储位置是:/var/lib/docker
。
一般的云服务器系统盘都比较小(比如阿里云默认是20G),像docker image这种动辄几百兆的文件,装不了多少就会把磁盘空间占满了。所以需要修改docker的数据存储位置,将它存储到其他挂载的磁盘上。
有两种方法能修改存储位置:
第一种,使用软连接的方式修改路径:
ln -s /new-path/docker /var/lib/docker
使用docker info
查看存储位置:
...
Storage Driver: devicemapper
...
Data loop file: /new-path/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
...
会发现后面跟着一个Warning,但没发现有啥影响,所以暂时就先这样了。
第二种,使用参数--graph
指定存储位置(推荐)
centos6下,修改(或新建)文件/etc/sysconfig/docker
// 首先关闭docker
service docker stop
vi /etc/sysconfig/docker
other_args="--graph=/new-path/docker"
// 重启docker服务
service docker start
centos7下,修改docker.service
文件,使用-g参数指定存储位置
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /new-path/docker
// reload配置文件
systemctl daemon-reload
// 重启docker
systemctl restart docker.service
如果docker是1.12或以上的版本,可以修改(或新建)daemon.json
文件。修改后会立即生效,不需重启docker服务。
[$] vi /etc/docker/daemon.json
{"registry-mirrors": ["http://7e61f7f9.m.daocloud.io"]}
// 添加内容:
{"graph": "/new-path/docker"}
// 文件修改后的内容:
[$] cat /etc/docker/daemon.json
{
"registry-mirrors": ["http://7e61f7f9.m.daocloud.io"],
"graph": "/new-path/docker"
}
可以看到,我把加速镜像地址也配置在了daemon.json
中,使用的是daoCloud的服务。
网友评论