我的容器具有以下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,因此不能选择attach等。
编辑:这似乎是因为sshd没有运行,因为如果我运行“ ps -A”它不会显示。
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/。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句