Docker运行结果报错:层不存在

Sim*_*n L 9 docker

我正在尝试使用 docker-compose 在我的 raspberry pi 3 上设置 redmine(使用 postgres)。它已经工作过一次,但后来我尝试安装插件并以某种方式设法使我的系统崩溃。

现在它不再让我启动我的数据库容器。即使创建一个新postgres:12.8容器,也会产生错误layer does not exist

$ docker run --rm -it postgres:12.8 bash
docker: Error response from daemon: layer does not exist.
Run Code Online (Sandbox Code Playgroud)

我已经重新启动系统两次,遗憾的是没有改变任何东西。我怎样才能让它再次工作?

附加信息:

$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 5
  Running: 4
  Paused: 0
  Stopped: 1
 Images: 65
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.66-v7+
 Operating System: Raspbian GNU/Linux 9 (stretch)
 OSType: linux
 Architecture: armv7l
 CPUs: 4
 Total Memory: 926.1MiB
 Name: raspberrypi
 ID: <redacted>
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Run Code Online (Sandbox Code Playgroud)

更新1:

删除图像(通过docker rmi)并不能阻止错误。

$ docker run --rm -it postgres:12.8 bash
Unable to find image 'postgres:12.8' locally
12.8: Pulling from library/postgres
Digest: sha256:e10cd754296c1b3e93a121bcc64550d183df56f20bab47e08cacb123fb969b5e
Status: Downloaded newer image for postgres:12.8
docker: Error response from daemon: layer does not exist.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

其他图像可以照常运行:

$ docker run --rm -it alpine bash
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
4ee0caa23b36: Pull complete
Digest: sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae
Status: Downloaded newer image for alpine:latest
/ # whoami
root
/ #
Run Code Online (Sandbox Code Playgroud)

Sim*_*n L 14

Nuking/var/lib/docker似乎让系统再次工作 - 这会删除所有图像和许多其他与 docker 相关的数据。

这感觉不是一个很好的解决方案,但现在必须这样做。

$ sudo service docker stop
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
$ docker run --rm -it postgres:12.8 bash
Unable to find image 'postgres:12.8' locally
12.8: Pulling from library/postgres
607f77084e8a: Pull complete
ce89a6184ac9: Pull complete
2a4e6e7ac863: Pull complete
f3b6f439172b: Pull complete
2e803a3461b4: Pull complete
467430f26cab: Pull complete
1a81afc37621: Pull complete
4ceea61b7b5c: Pull complete
1f5bfa96a004: Pull complete
b40859b8e537: Pull complete
c7b3bf3cab26: Pull complete
653c63793cd5: Pull complete
aad7328542d8: Pull complete
Digest: sha256:e10cd754296c1b3e93a121bcc64550d183df56f20bab47e08cacb123fb969b5e
Status: Downloaded newer image for postgres:12.8
root@8ba418515688:/# 
Run Code Online (Sandbox Code Playgroud)

参考:


AP2*_*P22 11

我遇到以下错误,重新启动 docker 守护进程似乎可以修复它。仍然想知道是什么原因造成的。

level=error msg="POST /v1.41/containers/create 的处理程序返回错误:层不存在"

要重新启动 docker 守护进程,请运行:

sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)