ERRO [0001]错误,正在等待容器:上下文已取消

时间:2018-07-22 19:10:40

标签: docker dockerfile

运行docker映像时出错。看来问题出在我的电脑上。

我正在使用MacOS 10.13.6。 我已按照步骤创建docker映像。

Sanjeet:server-api sanjeet$ docker build -t apicontainer .

Sending build context to Docker daemon  24.01MB
Step 1/2 : FROM alpine:3.6
 ---> da579b235e92
Step 2/2 : CMD ["/bin/bash"]
 ---> Running in f43fa95302d4
Removing intermediate container f43fa95302d4
 ---> 64d0b47af4df
Successfully built 64d0b47af4df
Successfully tagged apicontainer:latest

Sanjeet:server-api sanjeet$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
apicontainer        latest              64d0b47af4df        3 minutes ago       4.03MB
alpine              3.6                 da579b235e92        2 weeks ago         4.03MB

Sanjeet:server-api sanjeet$ docker run -it apicontainer

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown.
Sanjeet:server-api sanjeet$ ERRO[0001] error waiting for container: context canceled 

Dockerfile

内部
FROM alpine:3.6

CMD ["/bin/bash"]

3 个答案:

答案 0 :(得分:6)

alpine默认不包含bash。 如果要包含bash,则应在Dockerfile中添加RUN apk add --no-cache bash

答案 1 :(得分:1)

运行/重新初始化Docker时出现的问题

ERRO [0000]等待容器错误:上下文已取消

强制停止正在运行的Docker容器的步骤

docker ps
//copy the CONTAINER ID of the running process, ex: CONTAINER ID: 37146513b713
docker kill 37146513b713
docker rm 37146513b713

答案 2 :(得分:0)

alpine不提供glibcalpine之所以小,是因为它使用了简化的libstdc版本musl.libc.org

因此,我们将使用ldd命令检查静态链接的依赖项。

$ docker run -it <image name> /bin/sh
$ cd /go/bin
$ ldd scratch

检查链接的静态文件,该文件在该版本的alpine中是否存在?从二进制文件的角度来看,如果没有找到该文件,它将无法报告文件,并将报告File not found

以下步骤取决于缺少的二进制文件,您可以在Internet上查找如何安装它们。

RUN apk add --no-cache libc6-compat添加到您的Dockerfile中,以在一些libstdc基于高山映像的Dockerfile中添加Golang

在这种情况下,解决方案之一是

  • 禁用CGO:在构建时使用CGO_ENABLED=0
  • 或添加 RUN apk add --no-cache libc6-compat 到您的Dockerfile
  • 或者不使用golang:alpine