当前位置: > > > > 从一个 Docker 容器到另一个 Docker 容器的 Golang POST 请求
来源:stackoverflow
2024-04-25 15:36:32
0浏览
收藏
有志者,事竟成!如果你在学习Golang,那么本文《从一个 Docker 容器到另一个 Docker 容器的 Golang POST 请求》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容
我在一个 docker 容器(端口 5044)中有一台服务器,在另一个 docker 容器(端口 4545)中有一台客户端。我想从客户端向服务器发送 post 请求,但收到一条错误消息“post “http://127.0.0.1:5044/check”: dial tcp 127.0.0.1:5044: connect: 连接被拒绝”。
json, err := json.Marshal(x) if err != nil { log.Fatal(err) } resp, err := http.Post("http://127.0.0.1:5044/check", "application/json", bytes.NewBuffer(json)) //Handle Error if err != nil { log.Fatalf("An Error Occured %v", err) } defer resp.Body.Close() //Read the response body body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln(err) } return string(body)
我可以使用邮递员发送帖子请求,一切正常。 我尝试连接到测试互联网服务(https://ptsv2.com/),它也有效。看来 golang 不想通过 docker 连接到本地服务器:/
正确答案
您的 docker 应用程序可以通过 postman 从“外部端口”访问
但是为了让它们能够一起通信,它们需要位于同一网络上
最简单的方法是使用 docker-compose (而不是手动创建网络)
version: '3' services: first: build: context: ./your-first-app dockerfile: Dockerfile ports: - '1800:1800' networks: my-network: second: build: context: ./your-second-app dockerfile: Dockerfile ports: - '1801:1801' networks: my-network: networks: my-network:
您的网络在该行的末尾声明,并且它通过标记网络(位于端口下方)链接到您的 docker 服务
好了,本文到此结束,带大家了解了《从一个 Docker 容器到另一个 Docker 容器的 Golang POST 请求》,希望本文对你有所帮助!关注公众号,给大家分享更多Golang知识!