docker运行没有设置WORKDIR不起作用

这不起作用:

docker run -d -p 80:80 image /go/src/hello 

这工作:

 docker run -w /go/src/ -d -p 80:80 image ./hello 

我对上述结果感到困惑。
我更喜欢第一个,但它不工作。 任何人都可以帮忙。

这取决于ENTRYPOINT (你可以通过ENTRYPOINT docker inspect --format='{{.Config.Entrypoint}}' image看到它)

使用sh -c的默认ENTRYPOINT点,都应该可以工作。
与任何其他ENTRYPOINT ,它可能会在做任何事情之前,在正确的文件夹。

另外一个docker log <container>将有助于知道第一次尝试发出的输出。

正如OP Clerk 所说 ,它来自golang Dockerfile / image ,意思是“hello”将引用$GOPATH/bin已编译的hello可执行文件,或者指向用src文件夹中的go build构build的可执行文件。