我正在使用IBM Bluemix和Docker。
[我的目标] 我想创建一个容器。我从网站上发现我们可以使用SSH作为“root”用户登录。所以我想我也可以在这个容器上安装maven和MySQL。虽然IBM Container是基于Docker的文件系统,但我们可以将容器视为Linux虚拟机(如果错误,请纠正我)。
我发现了一个类似的问题here,其中njleviere表示端口22已关闭。如何确定端口是打开还是关闭?如果它已关闭,我该如何打开它?另外,我认为端口22实际上是打开的。
[问题描述] 我主要关注this website,但我使用的是Ubuntu和SSH而不是Putty。
首先,我使用CONCAT
创建密钥文件。对于文件名,我尝试了“cloud”和“cloud.key”。都失败了。所以我认为密钥的名称无关紧要(如果错误,请纠正我)。
我打开g.name LIKE s.piece
键。密钥文件末尾有一个ssh-keygen
标记。我不确定是否应该包含此标记。所以我尝试了几件事:
.pub
"yu@yu-VirtualBox"
ssh-rsa KeyString yu@yu-VirtualBox
全部失败。
然后我创建了容器。我选择ssh-rsa KeyString
。鉴于我之前创建的公共IP(已经从任何容器解除绑定),我在公共端口添加了22。并将KeyString
粘贴到SSH密钥。几分钟后,容器开始运转。以下两个链接是Bluemix控制台在创建容器时的屏幕截图。
然后我可以在https://169.44.124.121:9080的浏览器中看到端口9080的默认页面。它说“欢迎使用Liberty”和“WebSphere Application Server V8.5.5.9”。
然后我输入(cloud和cloud.pub是密钥文件)
ssh -i cloud root@169.44.124.121
然后我得到了
ssh:连接到主机169.44.124.121端口22:拒绝连接
我使用"ibmliberty"
检查端口。看起来很好。
我在PORTS下看到"cloud.pub"
。
此外,我看到许多程序员使用docker文件来启动IBM Container。我应该切换到docker文件而不是这个IBM控制台Web界面吗?
答案 0 :(得分:0)
bluemix上的默认ibm-liberty图像不包含sshd。你可以添加它 - 你需要在你的Dockerfile中添加supervisord,sshd和相应的配置。
相反,如果你真正想要的只是一个安全的命令行连接到你的容器,你可以使用cf ic exec或docker exec。 (例如cf ic exec -ti mycontainername bash
)这将为您提供一个命令行,而不会产生正在运行的sshd的开销(和安全性暴露)。