在更好地理解SSH和Docker的过程中(我知道有很多方法可以在容器中运行SSH)。我查看了这个容器danielguerra/alpine-sshd。
使用说明中的第一个命令使用此图像: danielguerra/ssh-container
请注意,我特意询问了引用ssh-container
图片的此命令:
docker create -v /root/.ssh --name ssh-container danielguerra/ssh-container /bin/true
但是该存储库为空。没有Dockerfile
存在。所以我很好奇容器最终基于什么形象?
TIA, 奥莱
答案 0 :(得分:2)
您可以参考danielguerra/alpine-sshd,该danielguerra69/alpine-sshd引用了Dockerfile的Source Repository
,{{3}}列出了{{3}},基本图片为
FROM alpine:edge
这里的完整性是整个Dockerfile
FROM alpine:edge
MAINTAINER Daniel Guerra <daniel.guerra69@gmail.com>
RUN apk add --update openssh
RUN ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
RUN sed -i "s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config && sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config && sed -i "s/PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/g" /etc/ssh/sshd_config
CMD ["/usr/sbin/sshd","-D"]
更新
回答你的评论......创建一个空目录并将Dockerfile放在该目录上...然后cd进入该目录发出类似于
的命令docker build --tag ${YOUR_DOCKERHUB_ID}/${THIS_IMAGENAME} .
特别是丹尼尔显然使用了这个命令
docker build --tag danielguerra/ssh-container .
注意上面的尾随句点(。)...它表示Dockerfile的目录...然后使该图像对世界可见Daniel使用
将这个打屁股的新图像推送到Docker Hubdocker login # only necessary once to authenticate your DockerHub Id
docker push danielguerra/ssh-container