美文网首页
docker修改数据存储位置

docker修改数据存储位置

作者: mr_franklin | 来源:发表于2017-02-09 11:21 被阅读679次

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

    相关文章

      网友评论

          本文标题:docker修改数据存储位置

          本文链接:https://www.haomeiwen.com/subject/frkiittx.html