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

时间:2014-06-17 07:50:54

标签: docker lxc

我正在尝试移动" / 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

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

2 个答案:

答案 0 :(得分:6)

我刚刚做了以下事情,似乎运作良好:

以root身份:

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

答案 1 :(得分:4)

添加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"
}