根据评论的建议,我利用Docker systemd文档来改善此答案。下面的过程不需要重新启动,并且更加干净。
首先创建用于自定义配置的目录和文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo $EDITOR /etc/systemd/system/docker.service.d/docker-storage.conf
对于17.06-ce之前的docker版本,请粘贴:
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --graph="/mnt"
对于17.06-ce之后的docker粘贴:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --data-root="/mnt"
通过替代方法 daemon.json
我最近在Fedora 25上使用17.09-ce尝试了上述过程,但似乎不起作用。代替简单的修改即可/etc/docker/daemon.json:
{
"graph": "/mnt",
"storage-driver": "overlay"
}
尽管有这种方法,您必须重新加载配置并重新启动Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
要确认Docker已重新配置:
docker info|grep "loop file"
在最新版本(17.03)中,需要使用不同的命令:
docker info|grep "Docker Root Dir"
输出应如下所示:
Data loop file: /mnt/devicemapper/devicemapper/data
Metadata loop file: /mnt/devicemapper/devicemapper/metadata
要么:
Docker Root Dir: /mnt
然后,您可以安全地删除旧的Docker存储:
rm -rf /var/lib/docker