Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker默认安装的镜像,和镜像里面的所有操作,都是基于根目录“/”的,这样很容易造成磁盘爆满。
如果安装时提示:
ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
那说明,Docker安装时,已经磁盘不足

我们可以修改Docker默认的安装路径,类似Win10上指定一些软件的数据目录,所以我们要迁移Docker的默认磁盘路径
为什么要迁移?
磁盘空间不足:默认路径位于根分区,根分区通常空间较小。
性能优化:可以迁移至 SSD 或 RAID 盘上,提升容器 I/O 性能。
安全管理:将 Docker 数据与系统文件隔离,便于备份与恢复。
核心原理
Docker 在启动时会读取配置文件 /etc/docker/daemon.json。
我们只需修改其中的 "data-root" 参数,指向新目录即可。
停止 Docker 服务
必须先停止服务,防止数据写入导致迁移失败。
在 /home 下创建一个新目录用于存放 Docker 数据
# 创建目录,确保有足够的权限
mkdir -p /home/docker
# 设置目录权限(根据需要选择)
chmod 711 /home/docker
编辑 daemon.json 文件,指定新的数据根目录。
# 打开配置文件(如果不存在则创建)
vim /etc/docker/daemon.json
配置参考
{
"registry-mirrors": [
"https://docker.1ms.run"
],
"log-opts": {
"max-file": "100",
"max-size": "50m"
},
"data-root": "/home/docker"
}JSON 文件必须严格符合语法(双引号、逗号位置)。如果文件中已有其他配置,请在最后一个键值对后添加 , 再加入 "data-root"
启动 Docker,检查是否生效
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: