方法一、软链接

默认情况下Docker的存放位置为:/var/lib/docker

可以通过下面命令查看具体位置:

sudo docker info | grep "Docker Root Dir"

解决这个问题,最直接的方法当然是挂载分区到这个目录,但是我的数据盘还有其他东西,这肯定不好管理,所以采用修改镜像和容器的存放路径的方式达到目的。

这个方法里将通过软连接来实现。

首先停掉Docker服务:

systemctl restart docker或者service docker stop

然后移动整个/var/lib/docker目录到目的路径:

mv /var/lib/docker /root/data/dockerln -s /root/data/docker /var/lib/docker

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。

方法二、修改镜像和容器的存放路径

指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可。

Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致,在 Ubuntu 中的位置是:/etc/default/docker,在 CentOS 中的位置是:/etc/sysconfig/docker。

如果是 CentOS6 则添加下面这行:

OPTIONS=--graph="/root/data/docker" --selinux-enabled -H fd://

如果是 Ubuntu 则添加下面这行(因为 Ubuntu 默认没开启 selinux):

OPTIONS=--graph="/root/data/docker" -H fd://# 或者DOCKER_OPTS="-g /root/data/docker"

最后重新启动,Docker 的路径就改成 /root/data/docker 了。

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

vim /etc/docker/daemon.json

{"registry-mirrors": ["http://7e61f7f9.m.daocloud.io"],"graph": "/new-path/docker"}

方法三、system下创建配置文件

在/etc/systemd/system/docker.service.d 目录下创建一个Drop-In文件“docker.conf”,默认 docker.service.d 文件夹不存在。所以你必须先创建它。

创建Drop-In 文件的原因,是我们希望Docker 服务,使用docker.conf文件中提到的特定参数,将默认服务所使用的位于/lib/systemd/system/docker.service文件中的参数进行覆盖。如果你想深入了解Drop-In,请阅读system.unit文档

定义新的存储位置现在打开docker.conf增加如下内容:

# sudo vi /etc/systemd/system/docker.service.d/docker.conf

[Service]

ExecStart=

ExecStart=/usr/bin/dockerd --graph="/mnt/new_volume" --storage-driver=devicemapper

保存并退出VI编辑器,/mnt/new_volume 是新的存储位置,而devicemapper是当前docker所使用的存储驱动。如果你的存储驱动有所不同,请输入之前第一步查看并记下的值。Docker官方文档中提供了更多有关各种存储驱动器的信息。现在,你可以重新加载服务守护程序,并启动Docker服务了。这将改变新的镜像和容器的存储位置。

# sudo systemctl daemon-reload

# sudo systemctl start docker

为了确认一切顺利,运行 # docker info 命令检查Docker 的根目录.它将被更改为/mnt/new_volume

方法四、使用docker-storage-set(docker1.12)命令进行配置

配置文件位置:/usr/lib/docker-storage-setup/docker-storage-setup或者/etc/sysconfig/docker-storage-setup、/etc/sysconfig/docker-storage

vim /etc/sysconfig/docker-storage

# This file may be automatically generated by an installation program.

# Please DO NOT edit this file directly. Instead edit

# /etc/sysconfig/docker-storage-setup and/or refer to

# "man docker-storage-setup".

# By default, Docker uses a loopback-mounted sparse file in

# /var/lib/docker.  The loopback makes it slower, and there are some

# restrictive defaults, such as 100GB max storage.

DOCKER_STORAGE_OPTIONS=--graph="要保存的路径"

或者

DEVS=/dev/vdb

DATA_SIZE=800GB(更改docker默认存储大小)

from:http://blog.51cto.com/forangela/1949947

Docker修改默认存储位置(转)的更多相关文章

  1. Docker 修改默认存储位置

    首先使用 docker info 查看 docker 的基本信息 sudo docker info Containers: 0 Images: 5 Storage Driver: devicemapp ...

  2. docker修改默认存储位置

    前言:我这是默认安装的docker,所以其存放位置是/var/lib/docker,你可以发现是在/下面,之后你用docker 拉取的镜像文件也存放在这下面,这样就很快导致/空间爆满 1.修改配置文件 ...

  3. Docker 修改默认存储路径的一个方法

    1. 前期安装创建centOS的虚拟机时发现自己对linux的挂载点不清楚, 造成挂载点的分配不太均匀,如图: root / 节点的大小设置的比较小 /home路径设置的一直比较大 但是docker ...

  4. centos docker 修改默认存储路径

    1.修改配置 将--graph /mnt/docker添加在docker.service文件中的ExecStart字段后面,其中/mnt/docker为你需要修改的存储目录 $ vim /usr/li ...

  5. 修改docker的默认存储位置

    service docker stop mv /var/lib/docker /mnt/docker ln -s /mnt/docker /var/lib/docker ls /var/lib/doc ...

  6. Win10 Docker修改镜像存储位置

    发生现象: 在windows10下安装docker for windows,随着用docker pull image文件后,C盘的容量越来越小了,你可能也有一种跟我一样的想法,想改变默认的安装路径,本 ...

  7. docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置

    原文:docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_3767485 ...

  8. [转帖]四个修改Docker默认存储位置的方法

    四个修改Docker默认存储位置的方法 https://blog.51cto.com/forangela/1949947 易改乾坤关注0人评论27435人阅读2017-07-22 09:18:48   ...

  9. Centos7修改Docker默认存储位置

    一.前言 Centos7安装docker之后,默认的镜像及容器存储路径为/var/lib/docker,可以使用命令docker info查看. 但是该路径默认使用的是系统盘的存储,如果挂载了数据盘, ...

随机推荐

  1. PHPUnit安装

    From : http://blog.csdn.net/ruby97/article/details/8868197

  2. Ember.js 1.0 RC6 发布,JavaScript 框架

    Ember.js 1.0 发布了第 6 个 RC 版本,下载地址:https://github.com/emberjs/ember.js/tree/v1.0.0-rc.6 该版本包含众多的改进记录,详 ...

  3. 谈谈Enter回车键提交表单那些事 回车搜索 enter搜索

    我们在做系统前端的时候,往往会用到form标签,采用jquery插件做表单验证.我们信誓旦旦的一位把一切都做好的时候,并且检查一遍又一遍的时候,意向不到的事情发生了,也许是出于一种意外,而这种意外我们 ...

  4. LeetCode295-Find Median from Data Stream && 480. 滑动窗口中位数

    中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...

  5. iOS开发-简单工厂模式

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.概念很长,iOS开发中最常 ...

  6. python Selenium+phantomjs 小技巧

    1.元素模糊定位 如抓取下面列表: elements = doc("li[id^='result_']") 2.元素精确定位 elements =doc("div[cla ...

  7. 手动建库时一个错误:Error accessing PRODUCT_USER_PROFILE

    首先感谢前辈的文章:http://space.itpub.net/14184018/viewspace-691502 手动创建数据库完成后,创建新用户,并用新用户登陆到数据库时,报错如下: SYS@ ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十六)Structured Streaming中ForeachSink的用法

    Structured Streaming默认支持的sink类型有File sink,Foreach sink,Console sink,Memory sink. ForeachWriter实现: 以写 ...

  9. [Algorithm] Reservoir Sampling

    Given a stream of elements too large to store in memory, pick a random element from the stream with ...

  10. js获取对象值的方式

    js获取对象值的方式 var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc&qu ...