3 回答
TA贡献1829条经验 获得超7个赞
通过命令可以观察到/var/lib/Docker目录很大,我的主机只有20G,这个目录占了18G;原因是devicemapper的空间设的太大,通过docker info打印的Data Space Total参数可以看到,默认是107.4G。
思路如下:
备份当前容器、镜像;
删除/var/lib/docker目录;
使用dd命令重设大小;
恢复容器、镜像;
工具:
需要额外空间保存备份文件,可以挂载一个u盘或者云盘。
docker save 可以导出镜像 tar文件;
docker export 可以导出容器 tar文件;
备份好之后停止docker
[html] view plain copy
# /etc/init.d/docker stop
删除/var/lib/docker目录;
[html] view plain copy
# mkdir -p /var/lib/docker/devicemapper/devicemapper/data
# dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1M count=0 seek=8192
建立的文件最大为 1M * 8192 = 8G
启动docker
[html] view plain copy
# /etc/init.d/docker start
使用docker info看看Data Space Total,检查是否设置成功
docker load 可以导入镜像tar文件为 镜像
注意load用法为:docker load image1:new<image1.tar
docker import 可以导入容器tar文件为 镜像
注意import用法为: cat container1.tar |docker import - container1:new
TA贡献1825条经验 获得超6个赞
如果你的docker-registry是在container中,那么是无法使用命令删除image的,只能手动直接删除image文件。如果不是,那么可以使用docker rmi 镜像名 来进行删除
TA贡献1828条经验 获得超3个赞
Docker时代的日志,步子并未跨得太大,毕竟安全第一。然而,不可否认发展的时代总有让你意想不到的亮点。
如果你是容器中的应用,哪怕你是始乱终弃,抑或是洒脱不羁,Docker容器都会记录下你的点点滴滴,只要你对着标准输出标准错误说一句action。(Docker容器所有的标准输出标准错误都会被Docker Daemon接管)
如果你是个阅尽人间无数,拳打南山,脚踢北海,四海流窜的Docker容器,你在北京的One Night,兴许第二天在上海的你早已酒醒如初;第三天出差杭州的你,更是不记得昨天在上海住的是几星级宾馆。(Docker容器本身理应尽量无状态,容器内应用持久化的日志则有状态,频繁迁移不宜容器日志管理)。
如果你有一部肾机,如果你继续支持大表姐。Docker容器中的你,很容易将容器走南闯北的经历传至云端,以便他日传看。(Docker容器的应用日志,如果自己发往集中的日志处理中心,则为上上策,易统一;问题是成本高,得有钱买肾机,还需统一化的标准)
添加回答
举报