资讯动态

Ubuntu 修改 docker 镜像及容器默认存储位置

发布时间:2026/10/13 9:15:46 来源:尧图企业网站定制
文章目录一、确认docker默认状态二、修改存储位置三、适用于旧版本的第二种方法软链接小结一、确认docker默认状态检查Docker和containerd在系统盘上的实际磁盘占用情况。sudodu-sh/var/lib/docker /var/lib/containerd查看 Docker 当前实际使用的数据根目录也就是data-root是否已经生效。默认情况下的输出是/var/lib/docker。dockerinfo|grepDocker Root Dir对于现在较新的docker版本还需要检查是否开启containerd image store这是Docker Engine 29的新默认镜像存储后端用 containerd snapshotter 替代传统 graph driverDocker Engine 29 全新安装默认开启、升级保留旧模式、官方推荐开启默认情况下输出包含driver-type io.containerd.snapshotter.v1则表明已经开启。dockerinfo-f{{ .DriverStatus }}维度开启 (containerd)不开启 (overlay2)存储路径/var/lib/containerd/var/lib/docker仅/var/lib/docker磁盘占用更高压缩解压双份更低多平台镜像本地支持需外部构建器镜像证明/SBOM支持不支持Wasm 容器支持不支持迁移影响切换后旧镜像/容器暂时不可见无所以如果开启了containerd image store那么改data-root只管/var/lib/docker而/var/lib/containerd是独立路径必须单独迁移不能像以前一样只修改>二、修改存储位置首先暂停docker服务相关内容可以参考官方文档。sudosystemctl stopdockersudosystemctl stop docker.socket在系统盘外创建一个新的目录/data/docker存放Docker daemon自己的数据并将现有的数据同步到新目录下。sudomkdir-p/data/dockersudorsync-avxP/var/lib/docker/ /data/docker/修改data-root执行指令vim /etc/docker/daemon.json如果没有daemon.json这个文件新建并在其中加入如下内容{data-root:/data/docker}如果没有开启containerd image store那么到这里就修改完事儿了传统 overlay2 模式下镜像层、容器可写层、容器日志、volume、构建缓存、网络、插件、Swarm 数据都在/var/lib/docker下面所以改data-root会把它们一起迁走就够用了。如果开启了containerd image store镜像内容和容器快照不再完全放在>sudosystemctl stop containerdsudomkdir-p/data/containerdsudorsync-avxP/var/lib/containerd/ /data/containerd/修改/etc/containerd/config.toml中的root。root/data/containerd重启服务。sudosystemctl start containerdsudosystemctl startdocker如果提示docker守护进程相关的错误那么需要再次执行该指令如果提示拒绝访问需要切换root账户或者使用sudo来执行该指令。异常处理如果提示permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head http://%2Fvar%2Frun%2Fdocker.sock/_ping: dial unix /var/run/docker.sock: connect: permission denied需要将当前用户加入docker组中。sudousermod-aGdocker$USER可以通过如下指令确认当前用户所属组如果有输出docker则证明加入成功添加用户到 docker 组后需要重新登录才能使组更改生效。groups$USER三、适用于旧版本的第二种方法软链接移动原始存储目录到空间充足的位置mv/var/lib/docker 新位置在原位置创建软链接链接到新位置的目录ln-s新位置 /var/lib/docker查看链接结果将docker默认的存储位置链接到我们移动到的新位置这样在docker的逻辑上还是使用默认的存储位置但是利用软链接实际的存储位置是我们移动到的新位置。小结上述内容作为个人记录仅供参考如有其他问题欢迎在评论区讨论

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑