在centos中更改docker根路径

在centos中更改docker根路径,docker,centos,docker-compose,centos7,docker-swarm,Docker,Centos,Docker Compose,Centos7,Docker Swarm,我正在安装docker版本: Docker版本18.03.1-ce,内部版本9ee9f40 OS:centos 7 我想将默认docker根目录更改为/var/some\u path 我找到了三种方法: 在文件/etc/sysconfig/docker中添加(不工作) OPTIONS='--selinux已启用--日志驱动程序=journald--签名验证=false-Htcp://0.0.0.0:2375 -g/var/vms/docker'[centos@ip-172-31-1-225 当我

我正在安装docker版本:

Docker版本18.03.1-ce,内部版本9ee9f40

OS:centos 7

我想将默认docker根目录更改为
/var/some\u path

我找到了三种方法:

  • 在文件
    /etc/sysconfig/docker
    中添加(不工作)

    OPTIONS='--selinux已启用--日志驱动程序=journald--签名验证=false-Htcp://0.0.0.0:2375 -g/var/vms/docker'[centos@ip-172-31-1-225

  • 当我重新加载并重新启动docker时,什么也没发生。它的根目录是
    /var/lib/docker

  • /etc/docker/daemon.json中添加(不工作

    { “图形”:“/var/vms/docker”, “存储驱动程序”:“覆盖” }

  • 它抱怨说:

    unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: 
    
    图形:(来自标志:/var/lib/docker,来自文件:/var/vms/docker),存储驱动程序:(来自标志:覆盖,来自文件:覆盖)

    所以我删除了
    --graph=/opt/afp/docker--storage driver=overlay
    表单
    /etc/systemd/system/docker.service.d/execstart.conf

    之后当我重新加载并重新启动docker时

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    我收到错误信息

    Error starting daemon: error initializing graphdriver: overlay: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior. Reformat the filesystem with ftype=1 to enable d_type support. Backing filesystems without d_type support are not supported.
    
  • /etc/systemd/system/docker.service.d/execstart.conf中添加(不工作):

    ExecStart=/usr/bin/dockerd--graph=/var/lib/vms/docker--storage driver=overlay

  • (同时删除步骤2中添加的
    /etc/docker/daemon.json

    我也遇到同样的错误

    启动守护程序时出错:初始化graphdriver:overlay时出错:备份xfs文件系统的格式不支持d_类型,这会导致错误行为。请使用ftype=1重新格式化文件系统以启用d_类型支持。不支持不支持d_类型支持的备份文件系统。


    注意(重要):当根路径
    --graph=/var/lib/docker
    时,一切正常。

    可以通过创建系统化的插入式服务文件来更改docker根目录。当您希望图像和容器或docker生成的文件位于另一个分区或驱动器中时,这非常有用

    一种单元配置文件,其名称以.service结尾,它对由systemd控制和监督的进程的信息进行编码。Docker有其中之一

    您应该避免直接修改
    .service
    文件,因为它可能在更新过程中被覆盖。这就是为什么首选创建systemd drop-in service文件的原因。drop-in service文件仅更改您感兴趣的特定设置。请注意,如果存在多个drop-in文件,则会读取该文件

    有关本文的更多信息:

  • 检查新装载路径是否为xfs(ftype=1)或ext4分区。 用于检查xfd:xfs\u信息 这是因为docker文件只在两个分区中的任何一个上工作。 如果您的新安装类型如上所述,则遵循步骤2

  • 阻止码头工人 sudo systemctl停止docker

  • 在位置/etc/docker中创建一个名为daemon.json的文件

  • 在文件中提供以下信息:

    {
        "data-root": "/mnt/customlocation/docker-data",
        "storage-driver": "overlay2"
    }
    
  • 启动码头工人
  • 验证。键入命令:
  • 检查docker根目录


    希望有帮助!!!

    overlay2
    也会显示相同的错误。同样,当
    --graph=/var/lib/docker
    一切正常时。如图所示,centos及其文件系统需要更多的解决方法来创建overlay(或overlay2)驱动程序工作。但是,我不知道为什么您需要更改驱动程序才能更改您的
    docker
    路径可以帮助您完成您的任务issue@Aserre实际上,这是我找到的解决问题的3种方法中的第1种。(没有解决)您在显示的代码示例中没有使用
    other_args
    参数
    {
        "data-root": "/mnt/customlocation/docker-data",
        "storage-driver": "overlay2"
    }
    
    sudo systemctl stop docker
    
    docker info