从远程服务器连接到docker app

时间:2017-07-23 01:35:59

标签: docker centos7

我对如何管理docker中的端口和TCP连接感到困惑(我认为)。目前我有一个运行一些dockers容器的服务器A,我对在端口4444中运行的应用程序更感兴趣,当我输入docker container ls时,我得到:

4d2c0db7e23c        oryd/hydra:latest   "/bin/sh"                27 minutes ago      Up 27 minutes       4444/tcp, 0.0.0.0:9010->4445/tcp   determined_snyder
7c586393ef61        oryd/hydra:latest   "/bin/sh -c '/go/b..."   34 minutes ago      Up 34 minutes       0.0.0.0:9000->4444/tcp             someContainer

所以, 1)我不知道它是怎么读的4444/tcp, 0.0.0.0:9010->4445/tcp是什么意思?

然后,我有一个服务器B与其他应用程序(而不是docker)试图连接到正在侦听端口4444的容器,但我得到:

connectex: No connection could be made because the target machine actively refused it.

2)它真的是在4444端口运行的应用程序吗?这就是我对如何阅读第1点感兴趣的原因

我必须说我输入了服务器A:sudo lsof -i -P -n并且与docker相关的唯一寄存器显示:

docker-pr 15057 root    4u  IPv6 486152035      0t0  TCP *:9000 (LISTEN)
docker-pr 15224 root    4u  IPv6 486156778      0t0  TCP *:9010 (LISTEN)

1 个答案:

答案 0 :(得分:1)

  

所以,1)我不知道它是如何读取4444 / tcp,0.0.0.0:9010-> 4445 / tcp是什么   这意味着什么?

这意味着来自容器的端口4445将从任何接口作为主机服务器上的端口9010使用。

要从服务器B访问您的容器,您应该使用以下内容: hostname-of-container-host :9010

如果您希望从主机的端口4445获得服务,则需要使用-p 4445:来自容器的服务端口