更改Docker的数据目录


8

如何更改Docker的数据目录,其中docker保存容器(或lxc保存容器)?我的服务器中有一个ssd和一个硬盘驱动器ant,我希望将容器保存在硬盘驱动器上。谢谢

Answers:


11

我相信在本指南中,您会得到很好的解释。

您可以在启动Docker守护程序时使用-g选项更改Docker的存储基础目录(容器和图像所在的位置)。

Ubuntu / Debian:/etc/default/docker使用以下-g选项编辑文件:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"

Fedora / Centos:编辑/etc/sysconfig/docker,然后-g在other_args变量中添加选项:ex。other_args="-g /var/lib/testdir"。如果有多个选项,请确保将它们包含在“”中。重新启动后,(服务docker restart)Docker应该使用新目录。

使用符号链接是更改图像存储的另一种方法。

注意-这些步骤取决于您当前的/ var / lib / docker是实际目录(而不是指向其他位置的符号链接)。

1)停止搬运工:service docker stop。确认没有docker进程正在运行ps faux

2)仔细检查docker确实没有运行。看一下当前的docker目录:ls/var/lib/docker/

2b)备份- tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz

3)将/var/lib/docker目录移动到新分区:mv /var/lib/docker /mnt/pd0/docker

4)建立符号链接: ln -s /mnt/pd0/docker /var/lib/docker

5)窥视目录结构,以确保它看起来像在mv之前一样:(ls /var/lib/docker/请注意在末尾加斜杠

6)启动docker备份 service docker start

7)重启你的容器解析符号链接)


4)的原因是什么?需要吗?就我而言,我想将docker文件放在已安装的RAID上,而不在引导分区上。
Roman Mik

9

在Ubuntu上的最新Docker版本中,您将像这样编辑/etc/default/daemon.json:

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


1

升级到Docker 1.13.0。

从发行说明中:

- New
The storage location of the Linux volume can now be moved

1

扩展@MattK的答案:

有关控制Docker守护程序Docker文档建议使用独立于平台的方式来实现此目的:

编辑/etc/docker/daemon.json文件以包含该行

{
    "data-root": "/mnt/docker-data",
    (...)
}

这里/mnt/docker-data是你想要的码头工人图像和集装箱所在的目录。

然后

sudo systemctl restart docker

您可以通过运行来检查它是否有效

docker info

并查找以开头的行的内容Docker Root Dir:

另请参阅https://stackoverflow.com/a/50217666/2209313https://unix.stackexchange.com/q/452368/36043

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.