Answers:
我相信在本指南中,您会得到很好的解释。
您可以在启动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 faux2)仔细检查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)重启你的容器解析符号链接)
要更改data
目录,docker
需要使用option运行-g /my/data
。在我的/etc/default/docker
设定中:
DOCKER_OPTS="-g /srv/docker"
要更改data
目录,请lxc
输入/etc/lxc/lxc.conf
:
lxc.lxcpath = /srv/lxc
扩展@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/2209313和https://unix.stackexchange.com/q/452368/36043。