首页 > 解决方案 > 删除未使用的数据库后如何减小 SQL Server docker 卷的大小?

问题描述

我在 Mac 上运行 (linux) docker 版本的 SQL Server。我将 SQL 服务器的主数据目录定义为已安装的 docker 卷,位于:

/var/opt/mssql/data

我的 docker 磁盘使用量现在已经达到 92Gb。我已经进入 SQL 服务器并删除了一些未使用的数据库,这些数据库删除了大约 60Gb 的数据。我如何回收该空间?现在 docker 仍然显示相同的磁盘使用情况。我已经登录到正在运行的 docker 容器并验证了数据库文件已被删除,但我不确定如何回收空间。如果我在容器内运行 mount 命令,我可以看到已安装的卷:

/dev/sda1 on /var/opt/mssql/data type ext4 (rw,relatime,stripe=1024,data=ordered)

如果我执行 df 这个卷现在似乎只使用 26Gb,假设它确实是这里显示为 /dev/sda1 的卷:

[root@4a74a4f096d2 data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          88G   26G   59G  31% /
tmpfs            64M     0   64M   0% /dev
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
/dev/sda1        88G   26G   59G  31% /etc/hosts
shm              64M     0   64M   0% /dev/shm
tmpfs          1000M     0 1000M   0% /proc/acpi
tmpfs          1000M     0 1000M   0% /sys/firmware

docker system df 似乎没有多大用处,因为它似乎甚至不认为该卷正在使用中:

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              9                   1                   5.091GB             3.162GB (62%)
Containers          1                   1                   86.85MB             0B (0%)
Local Volumes       2                   0                   20.5GB              20.5GB (100%)
Build Cache         0                   0                   0B                  0B

我怎样才能收回这个空间?谢谢。

标签: sql-serverdocker

解决方案


我按照这个问题的步骤:

Docker 填满 macOS 上的存储空间

答案“为什么文件不断增长?” 向您展示如何运行 fstrim 命令:

docker run --rm -it --privileged --pid=host walkerlee/nsenter -t 1 -m -u -i -n fstrim /var/lib/docker

推荐阅读