温馨提示×

ubuntu docker怎样扩容

小樊
63
2026-10-16 01:39:25
栏目: 智能运维

在 Ubuntu 上使用 Docker 时,“扩容”通常分为几种场景。下面按常见需求给你讲清楚,并给出可操作方案。


一、Docker 默认存储盘(/var/lib/docker)扩容(最常用)

Docker 默认把镜像、容器、卷都存在 /var/lib/docker。
如果磁盘满了,一般做法是迁移 Docker 数据目录。

方案 1:挂载新磁盘到 /var/lib/docker(推荐)

1. 查看磁盘

df -h
lsblk

2. 格式化并挂载新磁盘(示例 /dev/sdb)

mkfs.ext4 /dev/sdb
mkdir -p /data/docker
mount /dev/sdb /data/docker

3. 停止 Docker

systemctl stop docker

4. 迁移数据

rsync -avz /var/lib/docker/ /data/docker/

5. 修改 Docker 配置

vim /etc/docker/daemon.json

示例:

{
  "data-root": "/data/docker"
}

6. 重启 Docker

systemctl start docker

7. 确认

docker info | grep "Docker Root Dir"

二、Docker 容器磁盘扩容(overlay2)

Docker 容器默认使用 overlay2,大小受宿主机文件系统限制,不能单独给容器“加盘”。

常见做法

✅ 使用 volume(推荐)

docker volume create data
docker run -v data:/app/data ubuntu

✅ 挂载宿主机目录

docker run -v /data:/app/data ubuntu

❌ 不支持的方式

  • 不能直接 docker resize
  • 不能给运行中容器加磁盘

三、Docker 镜像/容器占满根分区(清理)

如果是空间不够,先清理:

docker system df
docker system prune -a

谨慎使用:

docker volume prune

四、LVM 方式扩容(根分区本身扩容)

如果 /var/lib/docker 在根分区:

lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv

(适用于 LVM 安装的 Ubuntu)


五、Docker 桌面 / WSL2(Windows 用户)

如果是 WSL2 + Docker Desktop:

修改 .wslconfig:

[wsl2]
memory=8GB
disk=100GB

然后:

wsl --shutdown

六、总结建议

场景 推荐方案
Docker 空间不足 迁移 data-root
容器需要更多空间 用 volume
根分区太小 LVM 扩容
Windows WSL2 disk 配置

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Docker 安装方式(apt / snap)
  • df -h 输出

我可以直接帮你给具体扩容命令。

0 踩