问题:拉取docker镜像时提示no space left on device问题解决 (centos7.2)
    解决方式:出现此问题一般是Docker Root Dir目录空间不足导致。可修改其 **Docker Root Dir** 的值,使其指向一个更大空间的目录即可

    • ①:查看docker的根目录:

      docker的默认目录为:Docker Root Dir: /var/lib/docker

    1. [root@localhost ~]# docker info
    2. Client:
    3. Context: default
    4. Debug Mode: false
    5. Plugins:
    6. app: Docker App (Docker Inc., v0.9.1-beta3)
    7. buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
    8. scan: Docker Scan (Docker Inc.)
    9. Server:
    10. Containers: 2
    11. Running: 0
    12. Paused: 0
    13. Stopped: 2
    14. Images: 2
    15. Server Version: 20.10.6
    16. Storage Driver: overlay2
    17. Backing Filesystem: xfs
    18. Supports d_type: true
    19. Native Overlay Diff: true
    20. userxattr: false
    21. Logging Driver: json-file
    22. Cgroup Driver: cgroupfs
    23. Cgroup Version: 1
    24. Plugins:
    25. Volume: local
    26. Network: bridge host ipvlan macvlan null overlay
    27. Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
    28. Swarm: inactive
    29. Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
    30. Default Runtime: runc
    31. Init Binary: docker-init
    32. containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
    33. runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
    34. init version: de40ad0
    35. Security Options:
    36. seccomp
    37. Profile: default
    38. Kernel Version: 3.10.0-957.el7.x86_64
    39. Operating System: CentOS Linux 7 (Core)
    40. OSType: linux
    41. Architecture: x86_64
    42. CPUs: 24
    43. Total Memory: 31.2GiB
    44. Name: localhost.localdomain
    45. ID: J6CE:BNRP:HJOO:PHQU:S47A:YEY7:5I6A:CE4B:VPSA:6BRN:7EH3:3UJB
    46. Docker Root Dir: /var/lib/docker
    47. Debug Mode: false
    48. Registry: https://index.docker.io/v1/
    49. Labels:
    50. Experimental: false
    51. Insecure Registries:
    52. 127.0.0.0/8
    53. Live Restore Enabled: false
    • ②:查看docker的默认var/lib/docker目录所剩余空间:

      1. [root@localhost ~]# df -hl /var/lib/docker/
      2. Filesystem Size Used Avail Use% Mounted on
      3. /dev/mapper/centos-root 50G 39G 12G 78% /
    • ③:发现/home目录空间容量很大,可以将Docker Root Dir指向到此处:

      1. [root@localhost ~]# df -h
      2. Filesystem Size Used Avail Use% Mounted on
      3. /dev/mapper/centos-root 50G 39G 12G 78% /
      4. devtmpfs 16G 0 16G 0% /dev
      5. tmpfs 16G 4.0K 16G 1% /dev/shm
      6. tmpfs 16G 1.6G 15G 10% /run
      7. tmpfs 16G 0 16G 0% /sys/fs/cgroup
      8. /dev/mapper/centos-home 234G 6.1G 228G 3% /home
      9. /dev/sda1 1014M 146M 869M 15% /boot
      10. tmpfs 3.2G 0 3.2G 0% /run/user/26
      11. tmpfs 3.2G 0 3.2G 0% /run/user/0
    • ④:创建/home/docker/lib/docker目录,修改Docker Root Dir: /home/docker/lib/docker

      1. [root@localhost ~]# mkdir -p /home/docker/lib/docker
    • ⑤:创建devicemapper.conf配置文件:

      1. [root@localhost ~]# mkdir -p /etc/systemd/system/docker.service.d/
      2. [root@localhost ~]#
      3. [root@localhost ~]#
      4. [root@localhost ~]# vim /etc/systemd/system/docker.service.d/devicemapper.conf
    • ⑥:配置devicemapper.conf文件内容,内如如下:

      1. [Service]
      2. ExecStart=
      3. ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
    • ⑦:重启docker

      1. [root@localhost ~]# sudo systemctl daemon-reload
      2. [root@localhost ~]
      3. [root@localhost ~]# sudo systemctl restart docker

    ⑧:注意,由于更换了Docker Root Dir目录,以前下载的镜像需要转移到新目录下,本人通过cp -R命令复制过来后,启动时遇到一些问题,建议直接删除原来的镜像,重新下载。

    文章参考连接:

    • 拉取docker镜像时提示 no space left on device 问题解决https://www.cnblogs.com/lostvip/p/9909689.html