【发布时间】:2016-10-17 12:55:41
【问题描述】:
我正在本地机器上部署 docker 容器。我检查它们是否成功部署的方法是转到我的浏览器并输入http://192.168.99.105:7474/browser。我想以编程方式执行此操作,因此我遵循了此问题Check if a url is reachable - Help in optimizing a Class 中的代码。然而,当我尝试它时,我得到了一个System.Net.WebException {"The remote server returned an error: (504) Gateway Timeout."}。
它工作正常,如果网址是https://en.wikipedia.org/wiki/YouTube,我会得到一个HttpStatusCode.OK
这是我的代码:
private bool UrlIsReachable(string url)
{
//https://en.wikipedia.org/wiki/YouTube
HttpWebRequest request = WebRequest.Create("http://192.168.99.105:7474/browser") as HttpWebRequest;
request.Timeout = 600000;//set to 10 minutes, includes time for downloading the image
request.Method = "HEAD";
try
{
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
return response.StatusCode == HttpStatusCode.OK;
}
}
catch (WebException)
{
return false;
}
}
编辑:我的 docker-compose.yml 文件
version: '2'
services:
company1:
image: neo4j
ports:
- "7474:7474"
- "7687:7687"
volumes:
- $HOME/company1/data:/data
- $HOME/company1/plugins:/plugins
company2:
image: neo4j
ports:
- "7475:7474"
- "7688:7687"
volumes:
- $HOME/company2/data:/data
- $HOME/company2/plugins:/plugins
【问题讨论】:
-
你有一些代理设置吗?
-
你是如何启动你的 Docker 容器的?请给出命令或 docker-compose 文件。 192 地址是你主机的本地网络地址,还是运行 Docker 的 VM 的地址?
-
@lordkain 不,我没有,但我认为这是
TCP而不是HTTP。我在web-sniffer.net网站上进行了测试,它给了我Only ports 80,443,8080 allowed.我的端口是 7474。 -
@NathanielWaisbrot 是虚拟机的地址。
-
您是从 VM(Docker 主机)还是在另一个容器内运行此代码?
标签: c# url docker docker-container