Docker SSH服务器连接被拒绝

4

我有以下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”,它不会出现。

2个回答

2

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/


0
在您的Docker文件中,您只安装了openssh-server并期望它能正常工作。要使ssh工作,您基本上需要添加用户,创建密码,编写sshd规则并公开服务。如果您完成所有这些步骤,就可以通过ssh连接到您的Docker容器。
以下是参考链接https://docs.docker.com/engine/examples/running_ssh_service/ 希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接