Docker 删除上一次部署的容器对应的镜像

来源:互联网 发布:东北师大网络教育2018 编辑:程序博客网 时间:2024/06/09 23:46

Docker 删除上一次部署的容器对应的镜像


场景


在自动化运维中,经常升级更新部署容器,造成镜像不断在机器上堆积。本地机器还好,如果是云虚拟机,机器存储很快就会耗尽,导致运行程序缓慢。

解决办法


定时任务清理


linux 定期执行清理镜像的脚本。如清理没有正在跑的容器镜像。

#!/bin/bashdocker rmi $(docker images)

在执行启动容器之后就清理上一个镜像

获取 image_name 或者 id

oldImage=`docker inspect ${PROJECT_DOCKER} | jq '.[0] | .Config.Image'`

去掉引号

rmImage=`echo  ${oldImage} | sed 's/\"//g'`

删除镜像

docker rmi  $rmImage

完整代码例子

oldImage=`docker inspect ${container_name} | jq '.[0] | .Config.Image'`echo "正在删除历史容器.....${container_name}"docker rm -f ${container_name}echo "删除历史镜像.."yum install -y jqecho "oldImage: ${oldImage}"echo "docker rmi  ${oldImage}"rmImage=`echo  ${oldImage} | sed 's/\"//g'`echo $rmImagedocker rmi  $rmImage