在生产服务器中实际使用 docker 后发现,服务多了之后,非常占用磁盘。

本来以为只是一个测试用的服务,在逐步增加各种功能之后,多了诸多容器,导致系统盘空间所剩无几。

不得不将 docker 迁移到另一块空间大的硬盘上。

系统盘空间紧张

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/root 29G 24G 5.3G 82% /

/dev/sdc 63G 5.8G 54G 10% /www

迁移流程

停止 docker 服务

sudo systemctl stop docker

将现有的 docker 目录迁移到新磁盘的目录下。注意,最好在 screen 里执行,防止远程连接断开

sudo mv /var/lib/docker/ /www/some_new_path/docker/

mv 完成后,创建软连接

sudo ln -s /www/some_new_path/docker/ /var/lib/docker

重启 docker 服务:

sudo systemctl start docker

到对应目录下启动指定的服务

docker compose start

迁移后的磁盘空间

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/root 29G 7.8G 22G 27% /

/dev/sdc 63G 22G 38G 37% /www

系统盘瞬间没有了压力。

参考

https://stackoverflow.com/questions/24309526/how-to-change-the-docker-image-installation-directory