运行 构建 Docker 时未指定的错误 (0x80004005)

Unspecified error (0x80004005) while running a Docker build

考虑 docker https://hub.docker.com/?overlay=onboarding 的入职第一步,我 运行 在 运行 构建命令

时遇到问题
docker build -t <user>/cheers2019 .

错误发生在第6步,代码错误(0x80004005)。我在 windows 上 运行ning docker 使用 windows 个容器。

完整的错误代码:

Sending build context to Docker daemon  13.31kB
Step 1/9 : FROM golang:1.11-alpine AS builder
 ---> e116d2efa2ab
Step 2/9 : RUN apk add --no-cache git
 ---> Using cache
 ---> 07f79e350f69
Step 3/9 : RUN go get github.com/pdevine/go-asciisprite
 ---> Using cache
 ---> cfe4fd4064c3
Step 4/9 : WORKDIR /project
 ---> Using cache
 ---> 4ba87d64456e
Step 5/9 : COPY cheers.go .
 ---> Using cache
 ---> 486d7602dccf
Step 6/9 : RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cheers cheers.go
 ---> Running in b77dee3bd612
container b77dee3bd612319c299e077116fc68ccf7f166246f85138b0e1cc0e074c8cb2b encountered an error during CreateProcess: failure in a Windows system call: Unspecified error (0x80004005)
[Event Detail: failed to run runc create/exec call for container b77dee3bd612319c299e077116fc68ccf7f166246f85138b0e1cc0e074c8cb2b: exit status 1 Stack Trace:
github.com/Microsoft/opengcs/service/gcs/runtime/runc.(*container).startProcess
        /go/src/github.com/Microsoft/opengcs/service/gcs/runtime/runc/runc.go:580
github.com/Microsoft/opengcs/service/gcs/runtime/runc.(*runcRuntime).runCreateCommand
        /go/src/github.com/Microsoft/opengcs/service/gcs/runtime/runc/runc.go:471
github.com/Microsoft/opengcs/service/gcs/runtime/runc.(*runcRuntime).CreateContainer
        /go/src/github.com/Microsoft/opengcs/service/gcs/runtime/runc/runc.go:113
github.com/Microsoft/opengcs/service/gcs/core/gcs.(*gcsCore).ExecProcess
        /go/src/github.com/Microsoft/opengcs/service/gcs/core/gcs/gcs.go:351
github.com/Microsoft/opengcs/service/gcs/bridge.(*Bridge).execProcess
        /go/src/github.com/Microsoft/opengcs/service/gcs/bridge/bridge.go:637
github.com/Microsoft/opengcs/service/gcs/bridge.(*Bridge).execProcess-fm
        /go/src/github.com/Microsoft/opengcs/service/gcs/bridge/bridge.go:253
github.com/Microsoft/opengcs/service/gcs/bridge.HandlerFunc.ServeMsg
        /go/src/github.com/Microsoft/opengcs/service/gcs/bridge/bridge.go:72
github.com/Microsoft/opengcs/service/gcs/bridge.(*Mux).ServeMsg
        /go/src/github.com/Microsoft/opengcs/service/gcs/bridge/bridge.go:146
github.com/Microsoft/opengcs/service/gcs/bridge.(*Bridge).ListenAndServe.func2.1
        /go/src/github.com/Microsoft/opengcs/service/gcs/bridge/bridge.go:335
runtime.goexit
        /usr/lib/go/src/runtime/asm_amd64.s:1333 Provider: 00000000-0000-0000-0000-000000000000] extra info: {"CommandArgs":["/bin/sh","-c","CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags \"-static\"' -o cheers cheers.go"],"WorkingDirectory":"/project","Environment":{"GOLANG_VERSION":"1.11.13","GOPATH":"/go","HOSTNAME":"b77dee3bd612","PATH":"/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0],"OCISpecification":{"ociVersion":"1.0.1-dev","process":{"user":{"uid":0,"gid":0},"args":["/bin/sh","-c","CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags \"-static\"' -o cheers cheers.go"],"env":["PATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","HOSTNAME=b77dee3bd612","GOLANG_VERSION=1.11.13","GOPATH=/go"],"cwd":"/project","capabilities":{"bounding":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_FSETID","CAP_FOWNER","CAP_MKNOD","CAP_NET_RAW","CAP_SETGID","CAP_SETUID","CAP_SETFCAP","CAP_SETPCAP","CAP_NET_BIND_SERVICE","CAP_SYS_CHROOT","CAP_KILL","CAP_AUDIT_WRITE"],"effective":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_FSETID","CAP_FOWNER","CAP_MKNOD","CAP_NET_RAW","CAP_SETGID","CAP_SETUID","CAP_SETFCAP","CAP_SETPCAP","CAP_NET_BIND_SERVICE","CAP_SYS_CHROOT","CAP_KILL","CAP_AUDIT_WRITE"],"inheritable":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_FSETID","CAP_FOWNER","CAP_MKNOD","CAP_NET_RAW","CAP_SETGID","CAP_SETUID","CAP_SETFCAP","CAP_SETPCAP","CAP_NET_BIND_SERVICE","CAP_SYS_CHROOT","CAP_KILL","CAP_AUDIT_WRITE"],"permitted":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_FSETID","CAP_FOWNER","CAP_MKNOD","CAP_NET_RAW","CAP_SETGID","CAP_SETUID","CAP_SETFCAP","CAP_SETPCAP","CAP_NET_BIND_SERVICE","CAP_SYS_CHROOT","CAP_KILL","CAP_AUDIT_WRITE"]}},"root":{"path":"rootfs"},"hostname":"b77dee3bd612","mounts":[{"destination":"/proc","type":"proc","source":"proc","options":["nosuid","noexec","nodev"]},{"destination":"/dev","type":"tmpfs","source":"tmpfs","options":["nosuid","strictatime","mode=755","size=65536k"]},{"destination":"/dev/pts","type":"devpts","source":"devpts","options":["nosuid","noexec","newinstance","ptmxmode=0666","mode=0620","gid=5"]},{"destination":"/sys","type":"sysfs","source":"sysfs","options":["nosuid","noexec","nodev","ro"]},{"destination":"/sys/fs/cgroup","type":"cgroup","source":"cgroup","options":["ro","nosuid","noexec","nodev"]},{"destination":"/dev/mqueue","type":"mqueue","source":"mqueue","options":["nosuid","noexec","nodev"]},{"destination":"/dev/shm","type":"tmpfs","source":"shm","options":["nosuid","noexec","nodev","mode=1777"]}],"linux":{"resources":{},"namespaces":[{"type":"mount"},{"type":"network"},{"type":"uts"},{"type":"pid"},{"type":"ipc"}],"maskedPaths":["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"readonlyPaths":["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]},"windows":{"layerFolders":["C:\ProgramData\Docker\lcow\072ca1f3855a32f3e3b24c2fe4ca8dea9853d4fb64207407094332a2d6541458","C:\ProgramData\Docker\lcow\c45071b2eff55610a9d9b3f430b8e5fa3ff65465e59b8d5a63a61e744ca94c48","C:\ProgramData\Docker\lcow\6890c90396b8fcd14669837530eef071ec5e3f10dda6724478c7ab1b58752307","C:\ProgramData\Docker\lcow\a1998eef0068aac5fb61f53e87ce8d6d46eaf5c83f7eab36cb745fb57ad72e8a","C:\ProgramData\Docker\lcow\f311f4698a5c1eb5e8800ef04c6066177112d76afc18d089fcf2cd5642712a01","C:\ProgramData\Docker\lcow\5e7e640cace36a63707967e7109604dacc800b8163eb04a4be7f346ff38ba867","C:\ProgramData\Docker\lcow\a2a8b17328e92e236a3d30841abed7b815188a3d63e2432272f772acda4ec75d","C:\ProgramData\Docker\lcow\d774068efa88052dab131c32c40832302f547dd4737738ca19873e0c3bed0074","C:\ProgramData\Docker\lcow\b433fd6793fe572e509619d719280574a3b1860dbcc647ec6629695666227ca5","C:\ProgramData\Docker\lcow\b77dee3bd612319c299e077116fc68ccf7f166246f85138b0e1cc0e074c8cb2b"],"hyperv":{},"network":{"endpointList":["0FFBAC8D-5E31-4C4F-A753-85C5148C437D"],"allowUnqualifiedDNSQuery":true}}}}

知道我应该如何 运行 我的构建 docker 吗?

我已经尝试改实验了

检查:Docker version 在控制台中,如果实验在客户端和服务器中都为假。

然后你可以在C:\Users\中更改。docker 在 config.json 你改变 experimental":"enabled" 然后在 daemon.json 你改变 "experimental": true 然后在保存后我再次 运行 。 docker build -t <user>/cheers2019 .

我遇到了完全相同的错误。我不知道这是不是因为在安装过程中我检查了 "only Windows containers",但它切换到 Docker 中的 Windows 容器 For Windows.

所以解决方法是点击切换到Linux容器,然后我清理所有:

docker system prune

然后我又运行:

docker build -t <user>/cheers2019 .

现在对我有用了。 这是我的 Docker 版本:

docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:37 2019
 OS/Arch:           windows/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:29:19 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

在 Windows 10 我在当前问题和以下问题中报告了相同的问题:

为了解决这个问题,我结合了两种解决方案:

  1. @JPBlanc(切换到 Linux 容器
  2. @Muhammad(在命令行和配置文件上禁​​用实验

我是怎么做到的:

1) 切换到 Linux 容器:在任务栏上,右键单击 docker 图标并单击如下所示的选项:

2) 禁用命令行"Experimental Features":打开docker/settings并单击命令行

3) 禁用配置文件的实验设置::在 docker/settings 上,单击 Docker 引擎 并证明 experimental 设置为 false:

希望对您有所帮助。 干杯

在 Notepad++ 等工具中将 Windows 的 CRLF 字符替换为 LF,然后重新运行。