在释放 space 内部后调整 docker 容器的大小

Resize docker container after freeing space inside

我有一个带有 jenkins 的 docker 容器(让它成为 container1)——它是标准容器 运行,只有 --privileged 标志。

作为 CI 过程的一部分,我 运行 在这个容器中安装容器(用于集成测试等)。一切都很好——但我决定提交这个容器并发现它的图像(提交的结果)虚拟大小是 ~140 Gb!主机 (sudo du -sh /var/lib/docker) 上的文件夹 /var/lib/docker 显示 152 Gb

我通过 sudo docker exec -i -t container1 登录了我的容器,并完全删除了容器中 /var/lib/docker 内的所有内容。我还在 container1 中 运行 sudo du -sh / 并且它只显示 32 Gb(这是正常的 - 它是 android SDK 和其他东西)。我试图再次提交这个容器 - 但结果是一样的 ~ 140 Gb。 那么主机上的 docker 可能无法减小容器大小吗?有没有办法在主机上说 docker 容器几乎是空的,需要 sh运行k

我在主机上的 docker info 是:

  1. 容器:5
  2. 图片:65 存储
  3. Driver:aufs
  4. 根目录:/var/lib/docker/aufs
  5. 目录:75
  6. 执行Driver:native-0.2 内核
  7. 版本:3.13.0-32-通用
  8. 操作系统:Ubuntu 14.04.1 LTS

我做的就像 James Turnbull 在 "The Docker Book" 中描述的那样:

VOLUME /var/lib/docker

所以所有 "heavy" 内容现在都存储在主机上!

希望对大家有所帮助

请参阅我在另一个线程中使用 resize2fs 调整 /var/lib/docker 大小的分步说明:Docker increase disk space

TL;DR:

> df -h
/dev/sda3                17.6G      4.1G     12.6G  25% /var/lib/docker

Step 0. install cfdisk, e2fsprogs-extra (resize2fs)
> apk add cfdisk
> apk add e2fsprogs-extra

Step 1. resize partition /dev/sda3
> cfdisk

Step 2. resize file-system
> resize2fs /dev/sda3

Step 3. verify free space
> df -h
/dev/sda3                37.3G      4.1G     31.4G  12% /var/lib/docker