Docker 使用 union 文件系统(UnionFS)来创建容器镜像,其中包含了一个读写层(write layer)和一个只读层(read-only layer)。
默认情况下,Docker 的写层存储在 /var/lib/docker
目录下,包括容器的文件系统、日志和元数据等。但是,如果你的主机上的 /var/lib/docker
目录空间有限,你可能需要将 Docker 的写层(以及其他数据)存储到其他位置,例如外部硬盘或网络存储。
要将 Docker 的写层存储到其他位置,可以通过修改 Docker 的配置文件来指定新的根目录(root directory)。以下是实现该目的的步骤:
- 停止 Docker 服务:
sudo systemctl stop docker
- 备份原始的 Docker 配置文件:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
- 编辑 Docker 配置文件
/etc/docker/daemon.json
,将data-root
属性指定为新的 Docker 根目录。例如,要将 Docker 的根目录更改为/mnt/docker-root
,可以使用以下配置:
{
"data-root": "/mnt/docker-root"
}
-
保存并关闭文件。
-
启动 Docker 服务:
sudo systemctl start docker
现在,Docker 的写层将存储在新的根目录 /mnt/docker-root
中,而不是默认的 /var/lib/docker
目录中。
请注意,在指定新的 Docker 根目录之前,你需要确保该目录已经存在,并且有足够的权限让 Docker 进程可以写入该目录。否则,Docker 将无法启动或无法创建容器。
除了通过配置文件来指定 Docker 根目录外,你还可以在运行 Docker 命令时使用 --data-root
参数来指定根目录。例如:文章来源:https://www.toymoban.com/news/detail-658357.html
sudo dockerd --data-root /mnt/docker-root
这将启动 Docker 守护进程,并将 Docker 的根目录设置为 /mnt/docker-root
。文章来源地址https://www.toymoban.com/news/detail-658357.html
到了这里,关于docker设置rootdir:设置/var/lib/docker的默认数据存储位置(data-root或graph)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!