docker修改数据存储位置

2017-02-09  本文已影响679人  mr_franklin

在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的服务。

上一篇下一篇

猜你喜欢

热点阅读