将docker根文件夹移到新的驱动器/分区

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

根据这些问题:

  • 如何将Docker容器的映像移动到永久磁盘?
  • 如何在另一个分区上运行docker LXC容器?

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

这是我试过的:

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

但是,在所有情况下,当我尝试在容器中启动服务时,出现错误信息,写入“/ dev / null”(以root用户身份)时,出现错误。

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

眼镜:

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

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

我只是做了以下,似乎运作良好:

作为根:

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 

在Debian / Ubuntu中为docker添加自定义启动选项 (比如使用不同的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"