从远程服务器连接到 docker 应用

connect to docker app from remote server

我对如何在 docker 中管理端口和 TCP 连接感到困惑(我认为)。目前我有一个服务器 A 是 运行 一些 dockers 容器,我对端口 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)

So, 1) I dont know how it's read 4444/tcp, 0.0.0.0:9010->4445/tcp what it means?

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

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

如果你想让服务从主机的4445端口可用,你需要使用-p 4445:port-of-the-service-from-the-container