• Docker更改默认存储路径


    在linux下通常docker都是默认安装的,且默认的镜像,容器存储路径都位于/var/lib/docker中,可以通过docker info命令来查看,如下:

    $ docker info
    Containers: 12
    Images: 41
    Storage Driver: aufs
     Root Dir: /var/lib/docker/
     Backing Filesystem: extfs
     Dirs: 66
     Dirperm1 Supported: false
    Execution Driver: native-0.2
    Logging Driver: json-file
    Kernel Version: 3.13.0-32-generic
    Operating System: Ubuntu 14.04.1 LTS
    CPUs: 1
    Total Memory: 1.954 GiB
    Name: iZ23mtq8bs1Z
    ID: M5N4:K6WN:PUNC:73ZN:AONJ:AUHL:KSYH:2JPI:CH3K:O4MK:6OCX:5OYW

    有时 / 根目录不是很大,就容易造成存储不够,像我的机器 / 根目录30G,就不够用了,而/home当时就给分配了500G,接受教训,如果是自己用而且都是默认安装 / 根目录一定要分配的大一点,/home可以不用这么大。

    解决docker容器存放目录磁盘空间满了问题

    前言

    docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了。通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大。通过以下方法,解决该问题。

    转移数据修改docker默认存储位置

    有多种方式修改docker默认存储位置。
    最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。

    1.停止docker服务

    systemctl stop docker

    2.创建新的docker目录,执行命令df -h,找一个大的磁盘
       我在 /home目录下面建了/home/docker/lib目录

    mkdir -p /home/docker/lib

    3.迁移/var/lib/docker目录下面的文件到/home/docker/lib
       迁移后的完成docker路径:/home/docker/lib/docker

    rsync -avz /var/lib/docker/ /home/docker/lib/
    4.配置 /etc/systemd/system/docker.service.d/devicemapper.conf
       查看/etc/systemd/system/docker.service.d目录及devicemapper.conf是否存在。如果不存在,就新建
    mkdir -p /etc/systemd/system/docker.service.d/
    vi /etc/systemd/system/docker.service.d/devicemapper.conf

    5. devicemapper.conf添加如下内容:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd  --graph=/home/docker/lib/docker

    6.重启docker

    systemctl daemon-reload
    systemctl restart docker
    systemctl enable docker

    7.确认Docker Root Dir修改是否已经生效

    [root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
    ...
    Docker Root Dir: /home/docker/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    ...

    8.启动成功后,再确认之前的镜像是否还在

    [root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images
    REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
    10.80.177.233/policy                2.1.2               64ac4e178cd2        2 hours ago         818 MB
    10.80.177.233/crm                   2.1.3               d7636fbb7a29        2 hours ago         762 MB

    9.确定容器没问题后删除/var/lib/docker/目录中的文件

  • 相关阅读:
    Redis string
    java 是 传值还是传址 Pass-by-value or Pass-by-reference
    IDEA 适用技巧
    测试 MD
    pyqt5 学习总结
    win10 安装anaconda 无法使用pip 报错缺少SSL模块
    Hadoop datanode无法启动
    Ansible 安装jdk
    java 安装后 不能 java javac 说找不到命令 -bash: javac: command not found
    如何去掉MapReduce输出的默认分隔符
  • 原文地址:https://www.cnblogs.com/answerThe/p/12582106.html
Copyright © 2020-2023  润新知