更新时间: 2017-11-22 20:14:08       分类: web开发


情景

Docker技术虽然好用,可也有一个致命的缺点,那就是占用的空间太大,硬盘小的话一不留神就占满了。

默认Docker的数据目录是在/var/lib/docker下面,如果满了就需要想办法做下docker的迁移。

实战

首先给出两个实用的命令用于查看服务器的磁盘占用量:

df -m 查看所有挂载点下的磁盘占用的大小(-m表示以M为单位)

du -sh <path> 查看指定path下的所有文件大小,递归的,可以用来查找大文件的位置

我们线上服务器的硬盘20G,docker里跑的所有服务堆起来已经占了12个G,磁盘占用率达到了100%,这时候不得不对docker进行迁移,经过诸多尝试,给出一个最合适,代价最少的迁移方案。

  1. 挂载一个新的硬盘上去,用mount命令先把它挂载到一个临时的目录下,比如/data

  2. 停止docker服务: service docker stop

  3. 使用cp或者rsync把/var/lib/docker整个文件夹下的内容复制到/data目录下

  4. 干掉/var/lib/docker目录下的全部内容,给原来的磁盘腾够空间

  5. 重新挂载硬盘到/var/lib/docker目录下,先umount然后重新mount即可

  6. 为了能够每次开机都实现硬盘的自动挂载,需要修改/etc/fstab这个配置文件,比如添加下面这样一行就完成一个挂载:

     /dev/vdb /var/lib/docker          ext4    defaults        1 1
    
  7. 重启docker服务,然后重启你的镜像即可。


评论
by abtion   at   2017-11-26 16:23:57

运维功底又上一层楼23333