Docker的运行时数据,包括镜像、容器、网络和存储卷等默认存储在/var/lib/docker目录下,如果硬盘容量有限我们则需要修改这个存储位置
修改步骤如下:
-
停止Docker服务:
sudo systemctl stop docker
-
创建一个新的目录来存储Docker运行时数据:
sudo mkdir /new/docker/image/path
-
将Docker默认的运行时数据目录复制到新目录:
sudo rsync -axPS /var/lib/docker/ /new/docker/image/path
-
打开Docker配置文件:
sudo vim /etc/docker/daemon.json
-
在文件中添加以下内容:
{"graph": "/new/docker/image/path" // docker版本不同可能 "graph"应该替换为"data-root"
}
-
保存并关闭文件。
-
启动Docker服务:
sudo systemctl start docker
-
删除原目录
/var/lib/docker目录包含以下子目录:
- containers:存储容器的元数据和状态信息。
- image:存储镜像的元数据和层数据。
- network:存储Docker网络的元数据和状态信息。
- plugins:存储Docker插件的数据。
- swarm:存储Swarm集群的元数据和状态信息。
- tmp:存储Docker运行时的临时文件。
- trust:存储Docker镜像签名和信任数据。
- volumes:存储Docker卷的数据。
rsync -axPS命令解释:
用于将文件和目录从一个位置同步到另一个位置。它的选项含义如下:
- -a:归档模式,保留文件的所有属性,包括权限、所有者、组、时间戳等。
- -x:不跨越文件系统边界,避免同步时跨越不同的文件系统。
- -P:显示进度和继续传输,如果传输中断,下次传输可以从中断处继续。
- -S:保留稀疏文件,即只在文件中实际存在的数据块才会被传输。
这个命令通常用于备份、同步文件和目录,可以在本地或远程主机之间同步文件。