gpt4 book ai didi

docker - 使用MacOS在Docker容器中运行Toxiproxy

转载 作者:行者123 更新时间:2023-12-02 19:51:19 25 4
gpt4 key购买 nike

关于在OSX中的docker容器内部进行代理的一个非常基本的问题:我正在使用以下命令运行toxiproxy docker容器:

docker run --name proxy -p 8474:8474 -p 19200:19200 shopify/toxiproxy

和一个Elasticsearch容器:
docker run --name es -p 9200:9200 elasticsearch:6.8.6

我想toxiproxy将流量从ʻElasticsearch:9200容器重定向到localhost:19200。我用以下命令配置toxiproxy:
curl -XPOST "localhost:8474/proxies -d "{ \"name\": \"proxy_es\", \"listen\": \"0.0.0.0:19200\", \"upstream\": \"localhost:9200\", \"enabled\": true}"

现在,我希望:
curl -XGET localhost:19200/_cat

将使我指向Elasticsearch端点。但是得到:
curl: (52) Empty reply from server

知道为什么这是错误的吗?我该如何解决?

最佳答案

从toxiproxy容器内部,localhost:9200不会解析为es容器。

这是因为默认情况下,这些容器连接到默认网络。在默认网络上,本地主机是指容器的本地主机。它不会解析为运行docker-machine的主机的localhost。

您可以通过添加--net = host来使用主机网络,以使其正常工作。更好的方法是创建一个新网络,并运行该网络中的所有容器。
docker run --name proxy -p 8474:8474 -p 19200:19200 --net host shopify/toxiproxydocker run --name es -p 9200:9200 --net host elasticsearch:6.8.6
您的本地主机应该可以通过两种方式解析

关于docker - 使用MacOS在Docker容器中运行Toxiproxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60525206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com