将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"