3 回答
TA贡献1839条经验 获得超15个赞
连接到 docker 容器的最佳实践是使用容器名称,例如http://app_one:5044/check,您可以使用docker ps命令找到容器名称。为了连接容器名称,所有容器都必须在同一个网络中。
但如果你想使用 IP,这就是方式。
每个容器都有不同的 IP 地址,为了从一个容器连接到另一个容器,您需要知道要连接的容器 IP 地址。127.0.0.1 不是容器 IP,它是主机 IP。
您可以通过此命令找到容器的 IP 地址,docker inspect your_container_name您将在网络部分看到 IP
"Networks": {
"bridge_network": {
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.37",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
}
}
在我的示例中172.18.0.37是我的容器 IP 地址。所以我需要用它来交流,例如http://172.18.0.37:5044/check
请注意 IPAddress 如果容器在您重新启动容器时可以更改,因此最好使用容器名称
TA贡献1871条经验 获得超8个赞
docker-compose.yml
从您的服务器文件中找到您的服务名称并将其替换为:
resp, err := http.Post("http://127.0.0.1:5044/check", "application/json", bytes.NewBuffer(json))
有了这个:
resp, err := http.Post("http://<serviceName>:5044/check", "application/json", bytes.NewBuffer(json))
TA贡献1963条经验 获得超6个赞
您的 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 服务
- 3 回答
- 0 关注
- 67 浏览
添加回答
举报