• docker 更换Docker Root Dir


    docker 初始Docker Root Dir是/var/lib/docker,在/目录下,占空间比较大,机器挂了磁盘,希望把docker文件转移到磁盘上,本文采用更改docker配置文件的方法,其他方法请查阅参考文档。

    一、清除机器中镜像和所有容器

    如果机器中的镜像还要使用,请备份,目录更换后替换对应目录

    1.1、删除所有容器

    docker stop $(docker ps -q)
    
    docker container prune
    
    • 1
    • 2
    • 3

    1.2、删除所有镜像

    docker rmi -f $(docker images -q)
    
    • 1

    1.3、系统安全清理

    docker system prune
    WARNING! This will remove:
            - all stopped containers
            - all networks not used by at least one container
            - all dangling images
            - all dangling build cache
    Are you sure you want to continue? [y/N] y
    Total reclaimed space: 0B
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.4、查看docker各部分占用空间

    docker system df
    TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
    Images              1                   0                   725.9MB             725.9MB (100%)
    Containers          0                   0                   0B                  0B
    Local Volumes       0                   0                   0B                  0B
    Build Cache         0                   0                   0B                  0B
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二、更改配置文件

    2.1、修改或创建

    # 没有该文件,就创建
    vim /etc/docker/daemon.json
    {
    	  "data-root": "/iso2/root/var/lib/docker"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2、重启docker

    systemctl stop docker.service 或者
    service docker restart
    
    • 1
    • 2

    2.3、查看docker info

    docker info
    Containers: 0
     Running: 0
     Paused: 0
     Stopped: 0
    Images: 1
    Server Version: 18.09.9
    Storage Driver: overlay2
     Backing Filesystem: extfs
     Supports d_type: true
     Native Overlay Diff: false
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Plugins:
     Volume: local
     Network: bridge host macvlan null overlay
     Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
    Swarm: inactive
    Runtimes: runc
    Default Runtime: runc
    Init Binary: docker-init
    containerd version: 0197261a30bf81f1ee8e6a4dd2dea0ef95d67ccb
    runc version: 0efb0c21ad466ab204d657c5d12d61d68f2bb46d
    init version: fec3683
    Security Options:
     seccomp
      Profile: default
    Kernel Version: 4.19.91-009.ali4000.alios7.x86_64
    Operating System: Alibaba Group Enterprise Linux Server 7.2 (Paladin)
    OSType: linux
    Architecture: x86_64
    CPUs: 16
    Total Memory: 31.13GiB
    Name: system011164061051.na62
    ID: IRGT:PLTO:L2JJ:PPUA:DL5B:EEJQ:ZGK6:5N4A:PNFB:QL2M:QHLZ:RT56
    Docker Root Dir: /iso2/root/var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    Labels:
    Experimental: false
    Insecure Registries:
     127.0.0.0/8
    Live Restore Enabled: false
    Product License: Community Engine
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    Docker Root Dir 已经修改

    三、旧目录迁移和清理

    如果使用之前的文件,把旧文件拷贝到新的目录。如果不需要清理

    删除旧目录需要卸载挂载目录,负责会报错:

    rm: cannot remove ‘overlay2/a2a61616ae313153b21b1ea43c1c9dd8afa1e0334869928859ec6ac29dba85ed/merged’: Device or resource busy
    
    • 1

    查看挂载详情

    df -TH
    Filesystem     Type      Size  Used Avail Use% Mounted on
    devtmpfs       devtmpfs   17G     0   17G   0% /dev
    tmpfs          tmpfs      17G  111M   17G   1% /dev/shm
    tmpfs          tmpfs      17G  1.2M   17G   1% /run
    tmpfs          tmpfs      17G     0   17G   0% /sys/fs/cgroup
    /dev/vda2      ext4       63G   54G  5.6G  91% /
    /dev/vda1      ext4      1.1G  145M  809M  16% /boot
    tmpfs          tmpfs     3.4G     0  3.4G   0% /run/user/0
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/54877ea1eeaecc50bb65f4b213b2f18cbf562a9a9e34cfaf639429c73949539a/merged
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/19f785436760a4c3d8908133cd224567ed7cc72c893508756fc64530a1ccac22/merged
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/10ddce48edbbe564ca3dd01404a3be93f6de7d0115829f6ebc7fb4b489cd2e12/merged
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/c4dde52e03e9bc90f1393f7912c2ba1d8b066b67be92fe2f787be6aeb10210ef/merged
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/7e5efdbe7dc04158235186a0c1ee538810416f4b0db06c55e18878759c718ddc/merged
    /dev/vdd       ext4      1.1T   80M  1.1T   1% /iso2
    overlay        overlay    63G   54G  5.6G  91% /var/lib/docker/overlay2/a2a61616ae313153b21b1ea43c1c9dd8afa1e0334869928859ec6ac29dba85ed/merged
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    卸载挂载:

    umount /var/lib/docker/overlay2/54877ea1eeaecc50bb65f4b213b2f18cbf562a9a9e34cfaf639429c73949539a/merged
    
    #通常是容器挂载的卷,也可以使用以下命令卸载卷
    docker stop $(docker ps -q)
    docker container prune
    
    • 1
    • 2
    • 3
    • 4
    • 5

    四、参考文档

    1、https://blog.csdn.net/haohaifeng002/article/details/108119112

    2、https://blog.csdn.net/lhuang0813/article/details/123005016

    3、https://www.cnblogs.com/51ma/p/15693398.html

  • 相关阅读:
    什么是 mapState 助手?
    外包干了一个月,技术明显进步。。。。。
    c primer plus(2)
    59、回溯-括号生成
    小侃设计模式(九)-组合模式
    JAVA中Function的使用
    测试需求分析
    积分商城游戏设置的基本要点
    处理非线性分类的 SVM一种新方法(Matlab代码实现)
    [李宏毅老师深度学习视频]深度学习全连接层+反向传播机制【手写笔记】
  • 原文地址:https://blog.csdn.net/yuelai_217/article/details/126991326