我有一个奇怪的问题。
我无法 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(使用前将#替换为@)