从一个AWS ec2实例(运行docker
),我正在尝试使用curl
Docker容器托管的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
,但不确定如何调试此问题。
netstat
容器上没有,但我跑了:ss -a | grep -i LIST
要输出tcp LISTEN 0 100 ::ffff:127.0.0.1:http :::*
。如果我正确读取了该输出,则表示正在监听localhost:80
?