IBM Container,"Connection refused" 当 SSH 到 public IP

IBM Container , "Connection refused" when SSH to the public IP

我正在使用 IBM Bluemix 和 Docker。

[我的目标]我想创建一个容器。我从网站上发现我们可以使用 SSH 以 "root" 用户身份登录。所以我想我也可以在这个容器上安装 maven 和 MySQL。尽管 IBM Container 是基于 Docker 的文件系统,但我们可以将容器视为 Linux 虚拟机(如有错误请指正)。

我发现了一个类似的问题here,其中njleviere说22端口是关闭的。如何确定端口是打开还是关闭?如果关闭了,如何打开?另外,我认为端口 22 在我的情况下实际上是打开的。

[问题描述]我主要是跟着this website,但是我用的是Ubuntu和SSH而不是Putty

首先,我使用 ssh-keygen 创建密钥文件。对于文件名,我尝试了 "cloud" 和 "cloud.key"。都失败了。所以我认为密钥的名称并不重要(如果错误请纠正我)。

我打开.pub键。密钥文件末尾有一个 "yu@yu-VirtualBox" 标记。我不确定我是否应该包括这个标签。所以我尝试了几件事:

  1. ssh-rsa KeyString yu@yu-VirtualBox
  2. ssh-rsa KeyString
  3. KeyString

全部失败。

然后我创建了容器。我选择"ibmliberty"。鉴于我之前创建的 public IP(已经与任何容器解除绑定),我将 22 添加到 public 端口。并将 "cloud.pub" 粘贴到 SSH 密钥。几分钟后,容器开始 运行。以下两个链接是创建容器时 Bluemix 控制台的屏幕截图。

然后我可以在 https://169.44.124.121:9080 的浏览器中看到端口 9080 的默认页面。它说 "Welcome to Liberty" 和 "WebSphere Application Server V8.5.5.9".

然后我输入(云和cloud.pub是密钥文件)

ssh -i cloud root@169.44.124.121

然后我得到

ssh: connect to host 169.44.124.121 port 22: Connection refused

我用cf ic ps检查端口。看起来不错。 我在 PORTS 下看到 169.44.124.121:22->22/tcp

此外,我看到许多程序员使用 docker 文件来启动 IBM Container。我应该切换到 docker 文件而不是这个 IBM 控制台 Web 界面吗?

bluemix 上的默认 ibm-liberty 映像不包括 sshd。您可以添加它 - 您需要将 supervisord、sshd 和适当的配置添加到您的 Dockerfile 中。

相反,如果您真正想要的只是一个安全的命令行连接到您的容器,您可以使用 cf ic exec 或 docker exec。 (例如 cf ic exec -ti mycontainername bash )这将为您提供一个命令行,而不会产生 运行 sshd 的开销(和安全风险)。