Docker】如何修改Docker的默认镜像存储位置

江湖有多大,坑就有多多……
我使用的服务器, 系统盘根目录只有20G, 默认Docker 的镜像文件是安装在/var/lib/docker 目录下的, 这样的话我根本装不了太多的镜像,之前遇到一种情况就是docker服务对磁盘的读写操作太大,而且是软连接方式,导致服务器的磁盘不可用,当然测试环境用的是虚拟服务器。 所以这个中情况需要调整一下。

服务器环境:centos7,docker1.12.6

方案1:使用软链接方式(不建议,可以了解一下)
默认情况下Docker的存放位置为:/var/lib/docker

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

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

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

1.首先停掉Docker服务:

systemctl restart docker

或者

service docker stop
2.对之前的数据做个文件备份

tar -zcC /var/lib/docker >/mnt/var_lib_docker-backup-$(date + %s).tar.gz
3.然后迁移整个/var/lib/docker目录到目的路径:

mv /var/lib/docker /data/tools/docker
4.建立symlink软链接(不会自己Google)

ln -s /data/tools/docke /var/lib/docker
5.确认文件夹类型为symlink 类型

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

sudo systemctl start docker
方案2:修改镜像和容器的默认存放路径

指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可。刚好有个300g盘的挂在/data目录上,所以在这个目录下新建一个文件路径/data/tools/docker

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

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

OPTIONS=--graph="/data/tools/docker"--selinux-enabled -H fd://
如果是 Ubuntu 则添加下面这行(因为 Ubuntu 默认没开启 selinux):

OPTIONS=--graph="/data/tools/docker" -H fd://#
或者

DOCKER_OPTS="-g /data/tools/docker"
最后重新启动,Docker 的路径就改成 /data/tools/docker 了。

如果是CentOS7 就是用如下:

修改docker.service文件,使用--graph参数指定存储位置

sudo   vim   /usr/lib/systemd/system/docker.service 
文本内容:ExecStart=/usr/bin/dockerd下面添加如下内容:

--graph /data/tools/docker

2.修改完成后reload配置文件

sudo systemctl daemon-reload
3.重启docker服务

sudo systemctl  restart docker.service
4.修改默认存储路径的任务已经完成了,期待下一个《非root用户加入docker用户组省去sudo (三)》

备注:如果docker是1.12或以上的版本,可以修改(或新建)daemon.json文件。修改后会立即生效,不需重启docker服务。

sudo  vim  /etc/docker/daemon.json
修改如下:

{
"registry-mirrors": ["http://***.***.com"],
"graph":"/data/tools/docker"
}
 5.希望你能顺利完成操作,有问题尽量还是多看官网文档吧,有惊喜!

*****************************2019.04.26**************************‘

17及最新版本都是用 `data-root`代替`graph`了,这里的修改请一定确认好你的docker版本,最新的有最新的要求和规则

vim /etc/docker/daemon.json

{
"data-root":"/home/qadev/.dockerlib",
"registry-mirrors":["https://je5rsr46.mirror.aliyuncs.com"]
}

---------------------
版权声明:本文为CSDN博主「jwensh」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013948858/article/details/78424115

原文地址:https://www.cnblogs.com/yangww/p/11334895.html

时间: 2024-08-28 18:06:09

Docker】如何修改Docker的默认镜像存储位置的相关文章

Docker 更改镜像存储位置

挂载云磁盘 云服务器添加磁盘很容易的,直接从控制面板将磁盘加入主机即可,一般的云服务软件都是支持主机自动识别的,接下来就是主机内部的操作了,我这里用的是 CentOS7,所以步骤中的一些特定命令也是在相应环境下执行的: 使用 fdisk 分区 使用 fdisk 对数据盘进行分区,执行命令 fdisk /dev/vdb.根据提示,依次操作: a. 输入 n,回车.b. 输入 p,回车.c. 输入 1,3 次回车.d. 输入 wq 后,回车,开始创建分区. 使用 parted 分区 使用 parte

Mist 转移默认区块存储位置方法

http://8btc.com/thread-35325-1-1.html 看了bunaifeiqq 发的帖子"Mist 转移区块存储位置方法",综合帖子下面的发言,自己做了测试,可行.电脑系统win10,使用官网上下载的mist. 官网自带的mist(以太坊钱包),默认的文件目录是C:\Users\PHD\AppData\Roaming\Ethereum.由于区块文件占用空间很大(我的Ethereum超过20G),所以导致很多朋友的C盘不够用.目前mist以太坊钱包客户端没有找到可以

Windows 7,8中"is not accessible"的问题(应用程序默认配置文件存储位置)

Windows 7, 8用户在访问ProgramData目录和Documents and Settings目录时,会无法打开并被提示"C:\xxxx is not accessible. Access is denied."因为权限不足而被拒绝访问.这是因为在Windows Vista以后的Windows操作系统中,默认的应用程序数据位置相对于使用广泛的Windows XP已经被修改了,而这几个目录之所以存在时为了兼容还试图访问它们的老程序. 它涉及了Documents and Set

Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效

原文:Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效 我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没有必要修改,但是当大量使用docker镜像的时候,我们可能就要默认存储的位置了. 具体操作方法如下: 1.停止docker: service docker stop 2.修改docker服务的service文件: vim /u

修改Docker容器启动配置参数

有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker container update --restart=always 容器名字 2.直接改配置文件 首先停止容器,不然无法修改配置文件 配置文件路径为:/var/lib/docker/containers/容器ID 在该目录下找到一个文件 hostconfig.json ,找到该文件中关键字 Resta

修改docker镜像的默认存储目录

1.首先停掉docker # systemctl stop docker 2.修改系统服务的docker启动文件 [[email protected] docker]# vi /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target rhel-push-

四个修改Docker默认存储位置的方法

方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root Dir" 解决这个问题,最直接的方法当然是挂载分区到这个目录,但是我的数据盘还有其他东西,这肯定不好管理,所以采用修改镜像和容器的存放路径的方式达到目的. 这个方法里将通过软连接来实现. 首先停掉Docker服务: systemctl restart docker或者service docker s

修改docker的默认存储路径

之前的docker让我鼓捣坏了,然后就yum remove docker了,并把相关的文件夹内容都删掉了,重新配置. 注意:这是测试环境,系统是centos7. docker的默认路径是/var/lib/docker,需求是更换到/home/docker中. 安装docker yum -y install docker 开启docker服务 service docker start 查看docker版本信息,会出现警告. 网上查询后,说是引擎为drivermapper导致的loopback现象.

关于Docker默认存储位置及Docker系统默认池存储、卷存储限制空间修改

一.Docker默认存储位置 Docker默认存储位置在/var/lib/docker,通过命令 docker info | grep "Docker Root Dir"进行查看.有时候因为磁盘空间的问题,我们需要对其进行修改,下面有几种方法来解决docker默认存储位置的问题: 直接将数据盘挂载到/var/lib/docker目录上: 基于软连接的方式进行修改:数据盘挂载在/data目录下面,我们这样操作 mv /var/lib/docker /data/dockerln &