2015-09-19 21 views
6

bulunmayan:ssh-KeyScan aynen aşağıda, basit bir Dockerfile var 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 

çalışan sonucu:

docker build -no-cache -t testimage . 

geçerli:

Step 5 : RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 
---> Running in e11ef5962a11 
/bin/sh: 1: ssh-keyscan: not found 

cevap

14

Verirsin önce ssh yüklemeniz gerekir.

RUN apt-get -yq update && \ 
    apt-get -yqq install ssh 

Sonra ssh-keyscan dahil olmak üzere çeşitli ssh komutları kullanılabilir olacaktır.

sshd image Dockerfile adresinde yaptığım şey budur.
sshd sunucusunda yerel olarak sınamak için add localhost to my .ssh/known_hosts numaralı telefonu kullandım.

commented belowpjotr-dolphin tarafından gibi:

yalnızca sonra ssh-keyscan ise, openssh-client ssh paketinin daha az alan kaplar.

+0

Harika! Ssh zaten yüklü değildi bana gelmedi. Ancak, docker'a ssh'ın bir anti-pratik olduğu göz önüne alındığında, bunun mantıklı olduğunu düşünüyorum. Teşekkürler! – KevinArrrrrg

+1

@KevinArrrrrg evet, docker motor sunucusundan çalışan bir konteynere erişmek için, bir 'docker exec bash' yeterlidir. Ancak, başka bir makineden çalışan bir konteynere erişmek için, ssh, yüklü olsa da, meşru bir dinleyicidir. – VonC

+2

Sadece ssh-keyscan'dan sonraysanız, openssh-client'ın ssh paketinden daha küçük bir alanı vardır. –

İlgili konular