在 Ubuntu 上使用 Docker 时,“扩容”通常分为几种场景。下面按常见需求给你讲清楚,并给出可操作方案。
Docker 默认把镜像、容器、卷都存在 /var/lib/docker。
如果磁盘满了,一般做法是迁移 Docker 数据目录。
df -h
lsblk
mkfs.ext4 /dev/sdb
mkdir -p /data/docker
mount /dev/sdb /data/docker
systemctl stop docker
rsync -avz /var/lib/docker/ /data/docker/
vim /etc/docker/daemon.json
示例:
{
"data-root": "/data/docker"
}
systemctl start docker
docker info | grep "Docker Root Dir"
Docker 容器默认使用 overlay2,大小受宿主机文件系统限制,不能单独给容器“加盘”。
docker volume create data
docker run -v data:/app/data ubuntu
docker run -v /data:/app/data ubuntu
docker resize如果是空间不够,先清理:
docker system df
docker system prune -a
谨慎使用:
docker volume prune
如果 /var/lib/docker 在根分区:
lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
(适用于 LVM 安装的 Ubuntu)
如果是 WSL2 + Docker Desktop:
修改 .wslconfig:
[wsl2]
memory=8GB
disk=100GB
然后:
wsl --shutdown
| 场景 | 推荐方案 |
|---|---|
| Docker 空间不足 | 迁移 data-root |
| 容器需要更多空间 | 用 volume |
| 根分区太小 | LVM 扩容 |
| Windows | WSL2 disk 配置 |
如果你愿意,可以告诉我:
df -h 输出我可以直接帮你给具体扩容命令。