curl(56)Recv失败:连接重置由同行 – 打Docker容器时

从一个AWS EC2实例(运行docker ),我试图curl我的docker容器托pipe的Web服务。

鉴于:

 [ec2-user]$ docker ps CONTAINER ID     IMAGE                                 COMMAND          CREATED       STATUS        PORTS                     NAMES b56fa0d76d5c     $REGISTRY/$WORK/metrics:v0.1.0  "/bin/sh -c 'sh /root"  3 minutes ago    Up 3 minutes     0.0.0.0:80->80/tcp, 0.0.0.0:9000->9000/tcp  insane_leakey 

我可以从容器中打开Web服务:

 [ec2-user]$ docker exec -it b56fa0d76d5c bash root@b56fa0d76d5c:/# curl 'http://localhost/health' Request is missing required query parameter 'apiName' 

但是,我不能从主持人:

 [ec2-user]$ curl 'http://localhost/health' curl: (56) Recv failure: Connection reset by peer 

我看着这个curl错误的详细答案 ,但我不知道如何debugging这个问题。

连接重置到Docker包含器通常表示您已经为未指向应用程序的容器定义了端口映射。

所以,如果你已经定义了一个80:80的映射,检查你的docker实例内的进程实际上是在80端口上运行的(netstat -an | grep LISTEN)。

当Docker的“代理”拿起连接,尝试连接到容器内的进程,失败,重置连接。