/var/lib/docker/overlay2 占用很大,docker数据目录迁移

1、查看磁盘使用情况docker system df

[root@iZuf6ijiwyd0gil5jyti17Z ~]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              5                   4                   978.6 MB            546.1 MB (55%)
Containers          4                   3                   892.8 MB            0 B (0%)
Local Volumes       1                   1                   92 B                0 B (0%)

2、清理磁盘docker system prune

[root@iZuf6ijiwyd0gil5jyti17Z ~]# docker system prune
WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all dangling images
Are you sure you want to continue? [y/N] y
Deleted Containers:
0ace31348ef73714f579037703076c0ecbafbbe6267066706d597e13a6f5987f

Total reclaimed space: 620.6 MB
说明:可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

3、清理磁盘docker system prune -a

[root@iZuf6ijiwyd0gil5jyti17Z ~]# docker system prune -a
WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: docker.io/redis:latest
untagged: docker.io/redis@sha256:08e282682a708eb7f51b473516be222fff0251cdee5ef8f99f4441a795c335b6
deleted: sha256:de974760ddb2f32dbddb74b7bb8cff4c1eee06d43d36d11bbca1dc815173916e
deleted: sha256:6b55c9d53e82aae844119f70be80e7212c57eb7a1efd13f11934eb53fc8ab2e8
deleted: sha256:1a1fe5dd46b6f7387e0185626d8c22ec69f511bfb361beb6a07d1647b5044956
deleted: sha256:ef615ba85683864f78d22bf8bb98a1d54a90701da7a066562ef511bc5cc292c6
deleted: sha256:f448a5cc1367794bb2f15d887438c8b43f2324ee3523f5d95c15997685cc816d
deleted: sha256:e481db33c0c73ee7de5ecda57c21fcfb7eeeff7d22fcc4ad0166b0bf64a63a32
untagged: docker.io/ubuntu:latest
untagged: docker.io/ubuntu@sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f
deleted: sha256:26b77e58432b01665d7e876248c9056fa58bf4a7ab82576a024f5cf3dac146d6
deleted: sha256:9de65d1e8b2782409b2420bf9347003a43e91bb65c1e4c8fbd7d098d6234f359
deleted: sha256:e0f8e3acb2bf7fe9384463ae7009179d299b211e7cf17c2bf9d8e5e248cfe5b0
deleted: sha256:0e64bafdc7ee828d0f3995bebfa388ced52a625ad2969eeb569f4a83db56d505
untagged: docker.io/mysql:latest
untagged: docker.io/mysql@sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38
deleted: sha256:cbe8815cbea8fb86ce7d3169a82d05301e7dfe1a8d4228941f23f4f115a887f2
deleted: sha256:c74b92ab7fde96874c2f7afa77e338ebe739b829f5cb28a9975c9b0dcb47feb9
deleted: sha256:fded7187915726c2d2d18c8178cd70ab9aceab27f49a68ead928a662664b9402
deleted: sha256:217ef0e6aab8111068df664529c4bdcfc2b58701913028fd0d61b00265ad5a9b
deleted: sha256:1ab4dbca7ef7a8eb6f7ea8ddd780b5d55aac2a0098f2c217c68e31216a2de140
deleted: sha256:1fbdda78e87b76772be16bd4a745db7f95d9af70d5a3728260548380121ae711
deleted: sha256:cd35e2328f0670969657f1abae8beffbc1eb1fddbaf667e1e6e6286598500a35
deleted: sha256:068b92efc0504adcd3c23f16fde80775a2f4dfe485e242206f638eae72c4fa1b
deleted: sha256:7c8818a166d9666c68fcdbe421c30568d60d51a505e540f42901664113047a75
deleted: sha256:5aa8f65565168fd7db2aa6b9f8fb1db746aa598fa3854dcbdbb49d5a29f6d8a5
deleted: sha256:cca9d1bafa1ee67bb4d7178732c0955a40a5dea6e5b989f61248984f26f7306b
deleted: sha256:34ca91e79c4027120ca740231d415c739cccad57d1ee68d6a6e67ca60bbaf3a4
deleted: sha256:7e718b9c0c8c2e6420fe9c4d1d551088e314fe923dce4b2caf75891d82fb227d

Total reclaimed space: 655.1 MB

说明:清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了!(慎用)

4、迁移数据目录
4.1停止docker服务

systemctl stop docker

4.2创建docker新目录

mkdir -p /home/dockerData

4.3迁移/var/lib/docker目录下面的文件到/home/dockerData

rsync -avzP /var/lib/docker /home/dockerData/

4.4查看配置

systemctl status docker

配置查看
4.5修改配置

vim /usr/lib/systemd/system/docker.service
ExecStart后添加--graph=/home/dockerData/docker
#原来的
ExecStart=/usr/bin/dockerd-current  \
#修改之后的
ExecStart=/usr/bin/dockerd-current --graph=/home/dockerData/docker \

4.6重启docker

systemctl daemon-reload
systemctl start docker

5、查看数据目录

docker info
... ...
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
Kernel Version: 3.10.0-1062.18.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 991 MiB
Name: iZuf6ijiwyd0gil5jyti17Z
ID: CJZS:AJZL:B3CP:VD3Q:LIXV:CGLI:DHU3:OZIO:GIW2:FKXJ:VAUB:4GY4
Docker Root Dir: /home/dockerData/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
... ...

查看验证
此时,可以查看镜像都存在,重新启动容器即可,完美解决!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker 的 /var/lib/docker/overlay 目录用于存储 Docker 镜像层和数据卷的数据。如果这个目录的空间占用过多,可能是因为有太多的镜像层或数据卷被保留,或者有容器在运行时生成了大量的数据。要减少 /var/lib/docker/overlay 目录的空间占用,可以尝试以下方法: 1. 删除不再使用的镜像: ``` docker image prune ``` 2. 删除不再使用的数据卷: ``` docker volume prune ``` 3. 停止并删除不再使用的容器: ``` docker stop <CONTAINER_ID> docker rm <CONTAINER_ID> ``` 4. 使用 docker-gc 工具来自动清理不再使用的容器、镜像和数据卷: ``` docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc ``` 可以根据自己的情况选择适当的方法来解决空间占用过多的问题。 ### 回答2: docker的/var/lib/docker/overlay/目录是用来存储容器的镜像和数据的,默认情况下,它会占用较多的磁盘空间。 首先,你可以使用docker的清理命令来释放一些不再使用的镜像和容器,以减少磁盘空间的占用。例如,可以使用以下命令来删除所有停止的容器: ``` docker container prune ``` 此外,你还可以删除不再使用的镜像: ``` docker image prune ``` 这些命令会删除停止的容器和未被使用的镜像,从而释放占用的磁盘空间。 另外,你还可以考虑使用docker的卷来存储一些较大的数据,以减少/var/lib/docker/overlay/目录的空间占用。使用docker卷,你可以将容器的数据存储在宿主机的其他位置,从而减少/var/lib/docker/overlay/目录占用。 首先,你可以创建一个卷: ``` docker volume create my_volume ``` 然后,在运行容器时,将卷挂载到容器的指定目录: ``` docker run -v my_volume:/path/to/mount some_image ``` 这样,容器的数据就会存储在卷中,而不会占用/var/lib/docker/overlay/目录的空间。 最后,你还可以考虑调整docker的存储驱动。默认情况下,docker使用overlay2作为存储驱动,但是这种驱动可能会占用较多的磁盘空间。你可以尝试使用其他的存储驱动,如aufs或btrfs,以减少磁盘空间占用。 总之,通过清理不再使用的镜像和容器、使用docker卷来存储数据,以及调整存储驱动,你可以减少/var/lib/docker/overlay/目录的空间占用。 ### 回答3: 当Docker的/var/lib/docker/overlay目录占用过多空间时,可能是由于以下原因导致的: 1. 镜像和容器积累过多:Docker会保存所有使用过的镜像和容器的数据,并存储在overlay目录中。如果不定期清理过期或不再使用的镜像和容器,会导致该目录占用过多空间。可以使用docker rm和docker rmi命令删除不再需要的容器和镜像。 2. 日志文件过多:Docker的日志文件默认储存在overlay目录下。如果日志文件很大或过多,会占用大量空间。可以在Docker的配置文件中更改日志文件的位置,或者定期删除旧的日志文件。 3. 容器数据持久化:在某些情况下,容器的数据会持久化保存在overlay目录中,如果数据很大,可能会占用大量空间。可以考虑将数据保存在其他位置,或使用Docker Volume来管理容器的数据。 4. 容器卷未及时清理:如果在容器内使用了数据卷,且没有及时清理不再使用的数据,也会导致overlay目录占用空间过多。可以使用docker volume rm命令删除不再使用的数据卷。 为解决以上问题,可以使用以下方法: 1. 定期清理不再使用的容器和镜像,使用docker rm和docker rmi命令。 2. 定期清理旧的日志文件,可以更改日志文件的位置或定期删除。 3. 考虑将容器的数据保存在其他位置,或使用Docker Volume管理数据。 4. 及时清理不再使用的数据卷,使用docker volume rm命令。 通过上述方法进行合理管理和清理,可以减轻/var/lib/docker/overlay目录占用空间过多的问题,并保持Docker的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值