我正在尝试从一个使用GO语言的项目向另一个项目发起HTTP请求。发起请求的项目包含以下dockerfile:
FROM golang:alpine as builder
WORKDIR /build
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static"' -o main .
FROM scratch
WORKDIR /app
COPY --from=builder /build .
CMD ["./main"]
该等待请求的项目正在本地主机的8000端口运行,并具有以下dockerfile:
FROM golang:1.13.8 AS build-env
ADD . /dockerdev
WORKDIR /dockerdev
RUN go get -d -v ./...
RUN go build -o /server
# Final stage
FROM debian:buster
EXPOSE 8000
WORKDIR /
COPY --from=build-env /server /
CMD ["/server"]
当我编写
resp, err := http.Post("http://localhost:8000/orders", "application/json", bytes.NewBuffer(requestBody))
我遇到了以下错误:
拨号tcp 127.0.0.1:8000:连接被拒绝
由于我刚接触docker,所以欢迎提供改进意见!
127.0.0.1
本地主机名只会指向容器本身,而不是主机本身。去掉主机名,只列出端口号,即:8000
,并确保端口号传递到主机操作系统。 - colm.anseo--link
选项。使用docker inspect <name-of-container>
命令检查配置,并检查网络。它们应该具有相同的网关。 - user6516856