docker 基础镜像损坏

docker run 以后查看日志,提示报错,服务不能正常启动.

    # docker logs -f 6413
    standard_init_linux.go:211: exec user process caused "no such file or directory"
    standard_init_linux.go:211: exec user process caused "no such file or directory"
    standard_init_linux.go:211: exec user process caused "no such file or directory"
    standard_init_linux.go:211: exec user process caused "no such file or directory"

我们遇到的情况是,docker 目录下的文件被误删,导致docker依赖的基础镜像layer损坏,多个应用的基础镜像被损坏,直接执行docker run 不会重新拉取新镜像 ,暂没有找到其他可处理办法;
微服务体系, 多个服务依赖同一个基础镜像,不清楚具体是哪个寄出镜像已损坏

按以下步骤操作

  1. 停止所有损坏关联的所有容器
    docker stop $(docker ps -a -q)

    或者手动停止部分容器,比如 order服务和支付pay服务,是依赖的同一个FROM 镜像,那只需要停止这两个容器就好

  2. 删除容器及镜像

    该命令会删除所有停止的容器,挂载的卷等
    docker system prune -a

  3. 重新拉取

    docker pull order:1.0
    docker pull pay:1.0
posted @ 2024-07-22 16:58  BigOrang  阅读(25)  评论(0编辑  收藏  举报