误删了docker的镜像和容器,该如何恢复?在生产环境,通过docker rm 和docker rmi 误删了镜像和容器
用docker后,开发只要将开发完成的应用打成一个docker镜像,该镜像(相当于复制了开发本地环境及版本及依赖),运维只要运行该镜像不存在环境不一致依赖不一致版本配置不一致等问题,保证了环境迁移的一致,就算要在多台机器上运行,只要运行该镜像就行。方便做持续集成并有助于整体发布的容器虚拟化技术。
可以使用 docker history 命令查看删除镜像前的历史记录,并通过历史记录中的 SHA256 ID 来恢复该镜像。例如,假设您删除了名为 myimage 的镜像,可以使用以下命令查看该镜像的历史记录:
docker history myimage
然后找到您要恢复的历史记录的 SHA256 ID,并使用以下命令来恢复该镜像:
docker image save -o myimage.tar
docker image load -i myimage.tar
删除了容器,可以使用 docker commit 命令将该容器的状态保存为一个新的镜像,并使用该镜像来创建一个新的容器。例如,假设您删除了名为 mycontainer 的容器,可以使用以下命令将其状态保存为新的镜像:
如
docker commit mycontainer myimage
然后使用以下命令来创建一个新的容器:
docker run -it myimage
如果您删除的是自己构建的镜像或容器,则无法从 Docker Hub 上重新下载。在这种情况下,您需要使用上述第一种或第二种方法来恢复它们。
通过docker history myimage可以找到删除镜像的ID,没有你说你SHA256 ID,那我如何通过这个镜像的ID恢复镜像呢