在Dockerfile中找不到ssh密钥

在Dockerfile中找不到ssh密钥,docker,Docker,我有一个简单的Dockerfile,如下所示: FROM ubuntu:14.04 RUN apt-get update RUN apt-get -y upgrade RUN mkdir -p /root/.ssh RUN touch /root/.ssh/known_hosts RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 运行结果: docker build -no-cache -t testimage . 是

我有一个简单的Dockerfile,如下所示:

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get -y upgrade

RUN mkdir -p /root/.ssh
RUN touch /root/.ssh/known_hosts

RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
运行结果:

docker build -no-cache -t testimage .
是:


您需要先安装ssh

RUN  apt-get -yq update && \
     apt-get -yqq install ssh
然后,可以使用各种ssh命令,包括
ssh-keyscan

这就是我在工作中所做的。
我使用它来在
sshd
服务器上进行一些本地测试

截至:

如果您只在
ssh-keyscan
之后,则其占用空间比ssh-package小


事实上,正如

所说,太棒了!我没有想到ssh还没有安装。但鉴于ssh进入docker似乎是一种反实践,我认为这是有道理的。谢谢@Kevinarrrrg是的,对于仅从docker引擎主机访问正在运行的容器来说,
docker exec bash
就足够了。但要从另一台计算机访问正在运行的容器,ssh是一个合法的侦听器,但必须安装它。如果您只使用ssh密钥扫描,则openssh客户端的占用空间比ssh包小。@pjotr\u。我已将您的评论包含在答案中,以提高可视性。在基于RedHat/Centos的系统上:
openssh客户端
RUN  apt-get -yq update && \
     apt-get -yqq install ssh