在centos中更改docker根路径

时间:2018-07-04 14:55:47

标签: docker centos docker-compose centos7 docker-swarm

我正在安装docker版本:

Docker version 18.03.1-ce, build 9ee9f40

OS: centos 7

我想将默认docker根更改为/var/some_path

我发现了三种方式

  1. 在文件/etc/sysconfig/docker中添加(不起作用)

    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false -H tcp://0.0.0.0:2375 -g /var/vms/docker'[centos@ip-172-31-1-225

当我重新加载并重新启动docker时,没有任何反应。它的根目录为/var/lib/docker

  1. /etc/docker/daemon.json中添加(不起作用

    {     “ graph”:“ / var / vms / docker”,     “ storage-driver”:“覆盖” }

它抱怨:

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),存储驱动程序:(来自标志:overlay,来自文件:overlay)

所以我从--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.
  1. /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

我遇到相同的错误

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.

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

2 个答案:

答案 0 :(得分:1)

  1. 检查新的装载路径是xfs(ftype = 1)还是ext4分区。 用于检查xfd:xfs_info 这是因为docker文件只能在两个分区中的一个上工作。 如果上面提到了新的安装类型,请执行步骤2。

  2. 停止docker sudo systemctl停止docker

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

nano /etc/docker/daemon.json

提供文件中的以下信息:

{
    "data-root": "/mnt/customlocation/docker-data",
    "storage-driver": "overlay2"
}
  1. 启动docker
sudo systemctl stop docker
  1. 验证。输入命令:
docker info

检查docker根目录

希望有帮助!

答案 1 :(得分:0)

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

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

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

有关本文的更多信息: https://medium.com/@wlarch/change-docker-root-directory-by-creating-a-systemd-drop-in-service-file-3c1244244784