在EC2不能curl本地主机,使用野蝇群

我有一个在Amazon EC2的Docker容器中运行的野蛮群集应用程序。

这是我的Docker ps:

913171ca1a34 xxxxxxxxxxx/myrepository:osapp2.0 "java -jar /app/Or..." 55 minutes ago Up 55 minutes 8080/tcp, 0.0.0.0:4000->80/tcp elastic_yonath netstat -ano | grep 4000 gives following output tcp 0 0 :::4000 :::* LISTEN off (0.00/0/0) netstat -ano | grep 80 udp 0 0 fe80::841:a6ff:fe76:c70c:546 :::* off (0.00/0/0) udp 0 0 :::53880 :::* off (0.00/0/0) unix 3 [ ] STREAM CONNECTED 9800 

我在入站时在EC2的安全组中启用了端口80

我已经根据StackOverflow中的其他条目从/etc/hosts文件中删除了::1

我正在使用curl时得到:

 "curl http://locahost:4000" curl: (56) Recv failure: Connection reset by peer "curl http://localhost:8080" curl: (56) Recv failure: Connection reset by peer 

我能够在我的本地系统中运行我的docker工人。

我究竟做错了什么?

这是我的IPtables:

 sudo iptables -S -P INPUT ACCEPT -P FORWARD DROP -P OUTPUT ACCEPT -N DOCKER -N DOCKER-ISOLATION -A FORWARD -j DOCKER-ISOLATION -A FORWARD -o docker0 -j DOCKER -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT -A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT -A DOCKER-ISOLATION -j RETURN 

我做了一个netstat -antp,这里的端口被列为IPV6地址? 我怎样才能运行我的docker与IPV4configuration

sudo netstat -antp活动的Internet连接(服务器和已build立)

原始Recv-Q发送-Q本地地址外地址
状态PID /程序名称

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2294 / rpcbind

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2481 / sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2511 / sendmail

tcp 0 0 0.0.0.0:51501 0.0.0.0:*
LISTEN 2315 / rpc.statd

tcp 0 300 172.30.1.61:22 202.60.62.100:39334 ESTABLISHED 4539 / sshd

tcp 0 0 ::: 111 ::: * LISTEN 2294 / rpcbind

tcp 0 0 ::: 22 ::: * LISTEN 2481 / sshd

tcp 0 0 ::: 36475 ::: * LISTEN 2315 / rpc.statd

tcp 0 0 ::: 4000 ::: * LISTEN 4431 / docker-proxy

这个链接给我一个方法“ https://serverfault.com/questions/769578/curl-56-recv-failure-connection-reset-by-peer-when-hitting-docker-container

我能够连接到docker的bash,并能够curl的url

所以我做了两件事1)在我的Maven POM.xml中,我添加了一个configuration来设置一个0.0.0.0
或者2)我可以在docker文件的入口点标记中传递绑定地址

然后我在docker运行命令中使用端口8080

docker运行-d -p 8080:8080 rajxxxxxx / myrepository:osapp3.0

现在我可以在EC2中curl“ http:// localhost:8080 / rest / orderapp?ordernumber = 102 && offset = 1 ”