【问题标题】:Moving docker root folder to a new drive / partition将 docker 根文件夹移动到新的驱动器/分区
【发布时间】:2014-08-07 03:35:44
【问题描述】:

我正在尝试将“/var/lib/docker”文件夹从一个磁盘移动到另一个磁盘,因为这占用了太多空间。我一直遇到一些与权限有关的错误!

根据这些问题:

我的磁盘安装在“/data”上,我将“/var/lib/docker”文件夹复制到“/data/docker”

这是我尝试过的:

  • 使用“/data/docker”尝试了 DOCKER_OPTS 中的 -g 标志
  • 尝试从新磁盘驱动器创建符号链接
  • 我尝试从 /data/docker 进行绑定挂载

但是,在所有情况下,当我尝试在容器内启动服务时,我都会收到一个关于缺少权限写入“/dev/null”(作为 root 用户)的错误。

我只是将文件夹复制到新磁盘。这也复制了所有权限(这是一个 ext4 系统,与现在 docker 所在的原始磁盘具有相同的文件系统级别权限)。

规格:

  • 我使用的文件系统是aufs。
  • Docker 版本为 0.7.6
  • Ubuntu 12.04

如何正确移动数据?我需要先升级吗?

【问题讨论】:

    标签: docker lxc


    【解决方案1】:

    我刚刚做了以下,似乎效果很好:

    作为根:

    service docker stop
    mv /var/lib/docker /data/
    # reboot and get root
    service docker stop
    rm -rf /var/lib/docker && ln -s /data/docker /var/lib/
    service docker start
    

    【讨论】:

      【解决方案2】:

      添加custom startup options to docker in Debian / Ubuntu(如使用不同的data目录):

      编辑/lib/systemd/system/docker.service:

      [Service]
      EnvironmentFile=-/etc/default/docker
      ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
      MountFlags=slave
      LimitNOFILE=1048576
      LimitNPROC=1048576
      LimitCORE=infinity
      

      /etc/default/docker 设置:

      DOCKER_OPTS="-g /srv/docker"


      在 Ubuntu 上更新的 Docker 版本中,您需要编辑 /etc/default/daemon.json

      {
          "data-root": "/new/location"
      }
      

      【讨论】:

      • 我认为这种方法比@Karl 提供的更优雅,但它对我不起作用。
      • @Corey - 见上面的daemon.json
      猜你喜欢
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多