openssh-server 未在 Docker 容器中启动

2024-04-28

我有一个奇怪的问题。

我无法 ssh 到具有 IP 地址的 docker 容器172.17.0.61.

我收到以下错误:

$ ssh 172.17.0.61
ssh: connect to host 172.17.0.61 port 22: Connection refused

My Dockerfile确实包含openssh-server安装步骤:

RUN apt-get -y install curl runit openssh-server

还有启动 ssh 的步骤:

RUN service ssh start

可能是什么问题?

当我使用进入容器时nsenter https://github.com/jpetazzo/nsenter并开始ssh服务然后我就可以 ssh 了。但是在创建容器时ssh-server似乎没有开始。

我应该怎么办?


构建 Dockerfile 时,您将创建一个映像。但是您无法使用已运行的 ssh 守护程序或任何其他正在运行的服务创建映像。首先,如果您从映像创建一个正在运行的容器,您可以启动其中的服务。例如。通过将启动指令附加到 docker run 命令:

sudo docker run -d mysshserver service ssh start

您可以使用以下命令为 docker 映像定义默认命令CMD。这是一个 Dockerfile 示例:

FROM ubuntu:14.04.1
MAINTAINER Thomas Steinbach
EXPOSE 22
RUN apt-get install -y openssh-server
CMD service ssh start && while true; do sleep 3000; done

您可以使用以下两个命令构建并运行此映像:

sudo docker build -t sshtest .
sudo docker run -d -P --name ssht sshtest

现在您可以通过 ssh 连接到该容器。请注意,在示例 Dockerfile 中,未创建用户和登录名。此图像仅作为示例,您可以启动与其的 ssh 连接,但不能登录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openssh-server 未在 Docker 容器中启动 的相关文章

随机推荐