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 不会重新拉取新镜像 ,暂没有找到其他可处理办法;
微服务体系, 多个服务依赖同一个基础镜像,不清楚具体是哪个寄出镜像已损坏
按以下步骤操作
-
停止所有损坏关联的所有容器
docker stop $(docker ps -a -q)
或者手动停止部分容器,比如 order服务和支付pay服务,是依赖的同一个FROM 镜像,那只需要停止这两个容器就好
-
删除容器及镜像
该命令会删除所有停止的容器,挂载的卷等
docker system prune -a
-
重新拉取
docker pull order:1.0
docker pull pay:1.0