解决 centos 系统下 Docker 占满 分区的问题

今天碰到了一个问题,访问数据库的时候,发现访问不了,爆存储空间不够的错误,随后输入命令:

df -h 

发现/dev/vda1,也就是系统盘被占满了。通过命令可以观察到/var/lib/docker目录很大,一开始的思路是把我需要的镜像和容器导出来,但更悲剧的是,提示空间不足,无法导出……

因为镜像是弄了很久的,所以不想轻易舍弃。就想了很久,终于想出了一个主意。先把/var/lib/docker文件夹移出去,然后重新设置docker的数据存储位置

下面是解决路径:

#查看当下允许的容器/镜像,进行关闭。
[root@git ~]# docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                    PORTS                              NAMES
af320c3683a2        redis-dockerfile     "/usr/bin/redis-serve"   22 hours ago        Up 22 hours               6377/tcp, 0.0.0.0:6377->6379/tcp   redis
441356d6c863        e18d2140c488         "docker-entrypoint.sh"   24 hours ago        Up 24 hours               0.0.0.0:6379->6379/tcp             redis-a
0072125aef9c        nginx_web/hello:v1   "/bin/bash"              28 hours ago        Up 28 hours               80/tcp           
....

逐步进行关闭:

[root@git ~]# docker stop redis
redis
[root@git ~]# docker stop redis-a
redis-a
[root@git ~]# docker stop prickly_goldstine
prickly_goldstine
[root@git ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@git ~]# service docker stop
停止 docker:                                              [确定]

迁出docker的数据(home目录没有挂载在系统盘),至此,系统盘的问题解决

[root@git ~]# mv /var/lib/docker /home/docker

mv: 无法删除"/var/lib/docker/devicemapper": 设备或资源忙

解决办法:
cat /proc/mounts | grep “docker”
umount /var/lib/docker/devicemapper
mv /var/lib/docker /home/docker

然后是设置docker是数据存储位置,编辑 /etc/sysconfig/docker 文件, 添加 -g 参数的设置, 如下:

other_args="-g /home/docker"  

启动docker

[root@git home]# service docker start
Starting docker:                                       [确定]

[root@git home]# docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                     PORTS                    NAMES
af320c3683a2        redis-dockerfile     "/usr/bin/redis-serve"   22 hours ago        Exited (0) 7 minutes ago                            redis
441356d6c863        e18d2140c488         "docker-entrypoint.sh"   24 hours ago        Up 2 seconds               0.0.0.0:6379->6379/tcp   redis-a
0072125aef9c        nginx_web/hello:v1   "/bin/bash"              28 hours ago        Exited (0) 7 minutes ago                            prickly_goldstine
da3a52e8fb7b        nginx                "nginx -g 'daemon off"   45 hours ago        Exited (0) 28 hours ago                             nginx_web
....

[root@git home]# docker start redis-a
redis-a

[root@git ~]# du -sh /var/lib/docker
8.0K    /var/lib/docker

至此,问题解决。

你可能感兴趣的:(docker)