Docker 存储

且看下docker info:

metadata一般不会太大,暂且不论。

  1. data默认107.4G (话说这还是centos7上的,曾经似乎只有10G),如何修改?
  2. 43个容器,57个镜像; 看来所有容器数据、和镜像数据都在这里了
  3. 从上面信息来看,设备数据已经满了,如下也能查看
  4. 镜像依赖:
    如果 image2是在image1上修改得到的,则image1无法先于image2被删除
  5. 容器依赖:
    如果有容器在使用某镜像,则该镜像无法被删除
  6. 删除文件后空间不会收缩
    创建一个大文件,空间膨胀;然后再删除大文件,空间不会缩回;但是,似乎会被重用这部分空间;问题:如何查看不能被重用的空间的大小呢?

 

问题:

一个docker存储空间被占满了:

  1. 如果扩容?
  2. 扩容必丢数据?如何备份数据?又如何导入数据?

 

关于loop-lvm 和 direct-lvm:

  1. loop-lvm不需要过多的配置,出于开箱即用的考虑,docker存储驱动默认使用的是loop-lvm,但是,非常不建议生产环境使用该方式(为什么?)
  2. direct-lvm配置比较复杂

docker存储空间扩容(不丢数据): https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/

docker在线扩容脚本: http://phpor.net/blog/post/3624

 

扩容注意事项:

扩容不要等到一点儿空间也没有的时候才做,否则后果有二:

  1. 要么进程申请不到存储资源,使得负载奇高,而且进程无法被杀死,只能重启docker宿主机
  2. 要么所有docker容器存储系统变为只读,只能重启docker daemon(所有容器都将需要重启)

参考资料:

  1. http://coolshell.cn/articles/17200.html
  2. https://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/
  3. https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据