gpt4 book ai didi

docker - openssh-server无法在Docker容器中启动

转载 作者:行者123 更新时间:2023-12-02 18:44:06 27 4
gpt4 key购买 nike

我有一个奇怪的问题。

我无法SSH到具有IP地址172.17.0.61的docker容器。

我收到以下错误:

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

我的 Dockerfile确实包含 openssh-server安装步骤:
RUN apt-get -y install curl runit openssh-server

并且还需要启动ssh:
RUN service ssh start

可能是什么问题?

当我使用 nsenter 进入容器并启动 ssh服务时,便可以使用ssh了。但是在创建容器 ssh-server时似乎没有开始。

我该怎么办?

最佳答案

构建Dockerfile时,您将创建一个镜像。但是您不能使用已经运行的ssh守护程序或其他正在运行的服务来创建镜像。首先,如果您根据镜像创建一个正在运行的容器,则可以在其中启动服务。例如。通过将开始指令附加到docker run命令:

sudo docker run -d mysshserver service ssh start

您可以使用CMD为您的Docker镜像定义默认命令。这是一个示例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连接,但不能登录。

关于docker - openssh-server无法在Docker容器中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27860506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com