Docker:ssh -L到docker容器-连接被拒绝

时间:2018-07-29 13:26:25

标签: docker ssh dockerfile docker-swarm ssh-tunnel

我在让ssh隧道在docker swarm集群中为我的容器工作时遇到问题。

本地计算机上的ssh连接:

ssh -L 7180:test.XXX:7180 user@XXX

在远程机器上的Dockerfile中:

EXPOSE 7180

容器开始:

docker -H test:2379 --tlsverify run -d -p 7180:7180 --net=my-net

我试图通过以下方式在Firefox中进行连接:

localhost:7180

不幸的是,该连接在远程计算机上被拒绝:

channel 3: open failed: connect failed: Connection refused

“ docker container ls”为端口打印以下内容:

xxx:7180->7180/tcp

在我的容器“ netstat -ntlp | grep LISTEN”中打印:

tcp        0      0 0.0.0.0:7180            0.0.0.0:*               LISTEN      - 

我对此并不陌生,但毕竟我到目前为止所读的内容仍然可以正常工作。我使用“ --net = my-net”是因为我想稍后设置自己的网络。我对“ --net = host”有同样的问题。我究竟做错了什么?

2 个答案:

答案 0 :(得分:0)

我可以和它一起工作

ssh -D localhost:7180 -f -C -q -N user@XXX

并使用

xxx:7180
在我的浏览器(而不是localhost)中

。 本地主机和--net = host不适用于ssh -L。

答案 1 :(得分:0)

ssh命令应为:

ssh -L 7180:127.0.0.1:7180 user@XXX

然后从浏览器中转到:

http://127.0.0.1:7180

我避免使用“ localhost”,因为即使没有配置IPv6,某些机器也会将其映射到IPv6。

在测试此隧道时,请通过向该服务器执行ssh来确保您的应用程序正在侦听远程服务器,并直接在服务器上向127.0.0.1:7180 {{ 1}} docker ps的输出。