docker修改镜像存储路径

 

查看docker镜像的默认存储路径

docker info

 

指定镜像和容器存放路径的参数是--graph=/var/lib/docker,其默认存储位置为/var/lib/docker,

Docker 的配置文件可以设置大部分的后台进程参数,

 

一、

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

vi /usr/lib/systemd/system/docker.service  

  ExecStart=/usr/bin/dockerd --graph /新path/docker 

 

2、reload配置文件 

  systemctl daemon-reload

 

3、 重启docker 

systemctl restart docker.service

4、查看 Docker Root Dir: /var/lib/docker 是否改成设定的目录 /-path/docker 

   docker info

 

 

二、或者如下方式(未试):

create soft link for target storage folder

the docker default storage dir is   /var/lib/docker , so we can create softlinke for this data to the target storage folder.

sudo rm -rf /var/lib/docker  
sodo  ln /home/docker-images/  /var/lib/docker

三、

service docker stop

停止Docker服务

service docker stop

修改 daemon.json 文件

如果daemon.json 文件不存在,新建即可。

vim /etc/docker/daemon.json 
{
    "graph":"/mnt/docker-data"
}

/mnt/docker-data  是要指定存放的路径

重启Docker服务

service docker restart

检查修改结果

docker info

==================================================================================

 

一、软连接到大盘

    1、在大盘中创建目录

        [root@fengyu docker]# mkdir /data/docker

    2、复制/var/lib/docker下数据到新创建的目录下

        [root@fengyu docker]# cp -r /var/lib/docker/* /data/docker

    3、备份/var/lib/docker下的数据

        [root@fengyu docker]# mv /var/lib/docker /var/lib/docker.bak

    4、在/var/lib目录下创建/data/docker的软连接

        [root@fengyu docker]#  ln -s /data/docker /var/lib/dcoker

    5、启动docker,检查docker服务是否可用,数据是否完整

        [root@fengyu docker]# systemctl start docker.service

        [root@fengyu docker]# docker images

        [root@fengyu docker]# docker ps -a

    6、确认无误后删除/var/lib/docker.bak

        [root@fengyu docker]# rm - rf /var/lib/docker.bak

 

二、修改(或新建)daemon.json文件

    1、修改daemon.json文件,立即生效,不需重启docker服务

        [root@fengyu docker]# vim /etc/docker/daemon.json

        {

        "graph": "/new-path/docker"

        }

 

 注意:如果之前有镜像和对应的数据,执行完这一步,默认存储路径是改掉了,但是会导致之前的镜像找不到,

可以把/var/lib/docker/目录下的所有文件  cp -R 到挂载有数据分区的目录下 即:cp -R /var/lib/docker/* /data/docker/

 

 

==================================================================================

 

1. 软链接

软链接 (Symbolic Link),也称符号链接,这里不再详细介绍。最简单的修改方法是将原docker 目录下的文件迁移到新的目录,然后将原目录链接到新的目录,这种方法的好处是不用修改 docker 配置,从系统文件操作的层面来解决。方法如下:

(1) 首先停止 docker 服务:

# systemctl stop docker
  •  

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

# mv /var/lib/docker /data/docker
  •  

(3) 创建软链接

# ln -s /data/docker /var/lib/docker
  •  

Note:命令的意思是 /var/lib/docker 是链接文件名,其作用是当进入/var/lib/docker目录时,实际上是链接进入了 /data/docker 目录

(4) 重启 docker

# systemctl start docker
  •  

2. 修改 docker 配置文件

也可以通过修改 docker.service 文件,使用 --graph newPath 参数指定存储位置,方法如下:

(1) 首先停止 docker 服务:

# systemctl stop docker
  •  

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

# mv /var/lib/docker /data/docker
  •  

(3) 修改 docker.service 文件

centos 下默认路径为 /usr/lib/systemd/system/docker.service

# vim /usr/lib/systemd/system/docker.service
  •  

在 ExecStart=/usr/bin/dockerd 后面添加参数 --graph /data/docker

结果如下:

ExecStart=/usr/bin/dockerd --graph /data/docker -H fd:// --containerd=/run/containerd/containerd.sock
  •  

(4) 重启 docker 服务

# systemctl daemon-reload 
# systemctl start docker
  •  

(5) 查看配置是否生效

# docker info 
 Docker Root Dir: /data/docker

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐