在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 ”
- Docker / boot2docker在亚马逊ec2
- 停止与MongoDB泊坞窗的虚拟机,而不会丢失数据
- 在AWS EC2实例的dockerfile中运行git clone作为主机和私有git存储库时,主机validation失败错误
- 设置安全jenkins与docker的主人
- 打开cassandra节点间encryption原因“无法与任何种子闲谈”exception
- 如何使用Elastic Beanstalk多容器环境共享AWS EC2实例
- 我可以在docker中设置一个远程的spark服务器,以便我可以在本地进行通信吗?
- 为Docker Logstash映像设置日志位置
- 我可以使用SSL / TLS运行Docker,但没有证书吗?