Amazon AWS ECS Docker端口未正确绑定
我正在使用ECS优化的ECS映像并使用ECS进行部署。
所以,如果我撞到容器和curl localhost
我得到预期的输出(预计将在端口80),这工作正常。
然后,如果我运行docker ps
我得到以下输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1234 orgname/imagename:release-v0.3.1 "npm start" 53 minutes ago Up 53 minutes 0.0.0.0:80->80/tcp ecs-myname-1234`
这将build议端口80
正在按预期映射。 (我也看到亚马逊ECS代理,但已经发布,以上并不重要)
然后我可以运行netstat -tulpn | grep :80
netstat -tulpn | grep :80
,我得到以下输出
(No info could be read for "-p": geteuid()=500 but you should be root.) tcp 0 0 :::80 :::* LISTEN -
然后以root身份运行sudo netstat -tulpn | grep :80
sudo netstat -tulpn | grep :80
,我得到以下输出
tcp 0 0 :::80 :::* LISTEN 21299/docker-proxy
这使我认为它只是在IPv6接口上侦听? 我作为localhost的主机logging是127.0.0.1,这就是为什么当我运行curl localhost
或curl 127.0.0.1
主机上我得到curl: (56) Recv failure: Connection reset by peer
我也检查了安全组和networkingACLS(不是他们应该对本地主机有影响)…
任何想法将不胜感激!
编辑:对于好的措施(有人build议netstat只显示ipv6而不是ipv4时ipv6可用。我也跑了这个命令lsof -OnP | grep LISTEN
给出了以下输出
sshd 2360 root 3u IPv4 10256 0t0 TCP *:22 (LISTEN) sshd 2360 root 4u IPv6 10258 0t0 TCP *:22 (LISTEN) sendmail 2409 root 4u IPv4 10356 0t0 TCP 127.0.0.1:25 (LISTEN) exe 2909 root 4u IPv4 13802 0t0 TCP 127.0.0.1:51678 (LISTEN) exe 21299 root 4u IPv6 68069 0t0 TCP *:80 (LISTEN) exe 26395 root 4u IPv6 89357 0t0 TCP *:8080 (LISTEN)