如何在ubuntu主机上的Docker容器之间路由端口
我正在从React前端进行JQuery Ajax调用到Express后端。 前端由端口80上的nginx服务,后端在端口3000上监听。从反应到expression的调用看起来像这样
$.ajax({ url: "http://localhost:3000/events?lat="+latitude+"&lng="+longitude+"&distance=15000&sort=time&until=%2B1%20week", dataType: "json", cache: false, success: function(data) { this.replaceState({data: data.events}); }.bind(this), error: function(xhr, status, err) { console.error(this.props.url, status, err.toString()); }.bind(this) });
当我尝试在Windows 10主机上执行此操作时,它可以无缝地工作,但是当我将容器部署到Digitalocean的Docker镜像(Ubuntu 14.04上的Docker 1.12.2)时,nginx服务器无法访问Express服务器:ERR_CONN_REFUSED
curllocalhost:80和curllocalhost:3000从主机工作正常。 我可以在容器之间从容器的shell之间ping通
sudo docker exec -i -t [container_id] / bin / bash
我试图禁用防火墙,但默认情况下这个图像已经禁用了。
sudo ufw禁用
任何提示接下来要做什么? 我没有想法。