Docker [for mac] 文件系统变为只读,这破坏了 docker 的几乎所有功能

Docker [for mac] file system became read-only which breaks almost all features of docker

我的 Docker 运行 进入错误状态,我无法再使用它了。

docker system info的输出:

Containers: 14
Running: 2
Paused: 0
Stopped: 12
Images: 61
Server Version: 18.03.1-ce
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 macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: error
NodeID:
Error: open /var/lib/docker/swarm/worker/tasks.db: read-only file system
Is Manager: false
Node Address: 192.168.65.3
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.87-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.952GiB
Name: linuxkit-025000000001
ID: MCSC:SFXH:R3JC:NU4D:OJ5V:K4B5:LPMJ:2BFL:LHT3:LYCI:XKY2:DTE6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

在我构建以下 Docker 文件后发生此行为:

FROM perl:5.20

RUN apt-get update && apt-get install -y libsoap-lite-perl \
&& rm -rf /var/lib/apt/lists/*

RUN cpan SOAP::LITE

当我尝试构建一个镜像或运行一个容器或删除一个镜像时,错误消息总是类似于这样:

Error: open /var/lib/docker/swarm/worker/tasks.db: read-only file system

例如,如果我尝试执行此命令:

docker container run -it perl:5.20 bash

我收到这个错误:

docker: Error response from daemon: mkdir /var/lib/docker/overlay2/1b966e163e500a8c78a64e8d0f14984b091c1c5fe188a60b8bd030672d3138d9-init: read-only file system.

如何重置我的 docker 以消除这些错误?

转到右上角的 docker for mac 图标,单击它,然后单击“重新启动”。 之后 Docker 按预期工作。

这似乎是一个暂时性问题,因为我无法在重新启动后重现它 docker。我的猜测是我在 docker 尝试下载并安装 Docker 文件中的软件包时遇到了网络通信故障。