【问题标题】:Docker SSH Server Connection RefusedDocker SSH 服务器连接被拒绝
【发布时间】:2016-11-28 19:47:42
【问题描述】:

我的容器有以下 Dockerfile:

FROM ubuntu:latest
RUN apt-get upgrade
RUN apt-get update
RUN apt-get -y install openssh-server
CMD tail -f /dev/null

但是,当我构建并运行它时,它说连接被拒绝。我尝试了几乎所有我能找到的解决方案,包括“ufw allow”,它不起作用,因为它告诉我我需要成为 root(我怎样才能为 Dockerfile 做到这一点?)。

我需要以这种方式访问​​容器:

ssh <someUsername?>@containerIP

PS:我知道还有其他方法可以连接到 Docker 容器,但我需要使用 SSH,所以无法选择附加等。

编辑:这似乎是因为 sshd 没有运行,因为如果我运行“ps -A”它不会显示。

【问题讨论】:

    标签: ssh docker containers openssh


    【解决方案1】:

    Docker 容器隔离了应用程序或命令,在您的情况下,它们隔离了命令 tail -f /dev/null,这将使容器保持运行,但不会做任何有用的事情。如果您希望 sshd 服务器运行,您需要将其作为前台命令启动:

    CMD ["/usr/sbin/sshd", "-D"]
    

    已经在 Docker Hub 上为此构建了很多镜像,包括 https://hub.docker.com/r/trsouz/ssh/https://hub.docker.com/r/rastasheep/ubuntu-sshd/

    【讨论】:

      【解决方案2】:

      在您的 docker 文件中,您只是在安装 openssh-server 并期望它能够正常工作。要使 ssh 正常工作,您基本上需要添加用户、创建密码、编写 sshd 规则并公开服务。如果你做了所有这些,你可以 ssh 到你的 docker 容器。

      这里是参考。 https://docs.docker.com/engine/examples/running_ssh_service/

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-08-07
        • 2020-06-10
        • 2016-02-23
        • 1970-01-01
        • 2019-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多