【问题标题】:SSH Setup on Docker ContainerDocker 容器上的 SSH 设置
【发布时间】:2015-05-10 05:52:11
【问题描述】:

我已经安装了 ssh-server sudo apt-get install openssh-server 在我的 ubuntu 上:在 Mac OSX Yosemite 上运行的最新 Docker 容器。我使用boot2docker ip 获得了容器的IP 地址。使用网络实用程序,我可以验证该 IP 上的端口 22 是否打开。但是,我无法 ssh 进入该容器的文件系统。我没有明确指定在使用docker start -i CONTAINER_NAME 启动容器时应该导出端口22。命令 ssh -v localhost 在容器的终端上成功,但是当我尝试从我的 Mac 终端执行此操作时,它说:

连接被 x.x.x.x 关闭

我在这里复制 sshd_config 的内容: http://collabedit.com/a76d6

【问题讨论】:

  • docker exec 消除了在容器内运行 ssh 的需要。改用它。
  • @PeterLyons 我希望我的 Mac 上的 IDE 能够编辑驻留在我的 docker 容器中的代码。我不认为 docker exec 会让我顺利做到这一点?
  • 正确,但更好的方法是为此使用卷,这样您的 Mac 上的 IDE 和 docker 中的代码都可以通过文件系统直接访问文件。

标签: macos ssh docker ubuntu-14.04 boot2docker


【解决方案1】:

使用boot2docker ip,您将获得 Boot2Docker 虚拟机的 IP,而不是您的 ssh 容器的 IP。要从 Mac 的终端连接,您应该公开容器的端口 22,然后您可以使用 Mac 会话中的 Boot2Docker VM IP 进行连接。 IE。: docker run -d -p 2222:22 CONTAINER_NAME 然后使用 BOOT2DOCKER_IP 和 2222 端口通过 ssh 连接。

【讨论】:

  • 有没有办法在已经运行的容器上暴露端口?
  • 你不能使用 Docker 来做到这一点,但你可以做一些变通方法。检查这个问题以查看详细信息stackoverflow.com/questions/19897743/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2017-06-22
  • 2018-05-07
  • 2014-01-20
  • 1970-01-01
相关资源
最近更新 更多