跳到主要内容

[toc]

修改docker镜像、容器默认存放位置

1.修改背景说明

因为Docker默认是存放在系统盘中 /var/lib/docker 的,当用的时间比较久后,产生的镜像及容器越来越多之后,可能会导致你的系统盘满了,这时我们需要将Docker的镜像及容器指向另外一个路径

2.修改步骤

2.1 docker镜像、容器默认存放于/var/lib/docker

$ cd /var/lib/docker
$ ls
builder buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes

2.2 修改docker镜像、容器存放位置

2.2.1 编辑配置文件 /etc/docker/daemon.json

加入以下一行

"graph": "/data/docker"

2.2.2 新建目录

mkdir -p /data/docker

2.2.3 查看修改后的配置文件

$ cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://gqk8w9va.mirror.aliyuncs.com"],
"graph": "/data/docker"
}

2.3 重启docker

systemctl restart docker

2.4 拷贝原镜像和容器到新目录

2.4.1 修改完docker镜像、容器存放位置后,原先的镜像和容器查看不存在

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE

2.4.2 拷贝原镜像和容器到新目录

\cp -rp /var/lib/docker/* /data/docker/

2.4.3 重启docker

systemctl restart docker

2.4.4 查看修改

$ docker info|grep Docker
Docker Root Dir: /data/docker

2.4.5 查看镜像和容器,已恢复

查看镜像

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jumpserver/jms_all 1.4.8 e9274ba449e8 3 months ago 1.31GB

查看容器

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2789b0d4a200 jumpserver/jms_all:1.4.8 "entrypoint.sh" About an hour ago Up 49 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:2222->2222/tcp jms_all

2.4.6 测试镜像和容器都无问题后可以删除目录 /var/lib/docker

rm -rf /var/lib/docker