基于非现有图像的Docker容器?

在更好地理解SSH和Docker的过程中(我知道在容器中运行SSH有很多方法)。 我审查了这个容器danielguerra /阿尔卑斯山sshd 。

使用说明中的第一条命令使用此映像: danielguerra / ssh-container 。

请注意,我具体询问引用ssh-container映像的这个命令:

  docker create -v /root/.ssh --name ssh-container danielguerra/ssh-container /bin/true 

但是,该存储库是空的。 没有Dockerfile存在。 所以我很好奇容器最终以什么样的图像为基础呢?

TIA,Ole

您可以参考danielguerra / alpine-sshd ,它引用了danielguerra69 / alpine-sshd的 Source Repository ,其中列出了一个Dockerfile ,其基本映像

 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"] 

UPDATE

回答你的评论…创build一个空的目录,并将上面的Dockerfile放入该目录中…然后cd到该目录中发出类似

 docker build --tag ${YOUR_DOCKERHUB_ID}/${THIS_IMAGENAME} . 

特别是丹尼尔显然使用了这个命令

 docker build --tag danielguerra/ssh-container . 

注意上面的尾部(。)…它表示Dockerfile的目录…然后让这个图像可见的世界Daniel将这个新的图像拖到Docker Hub

 docker login # only necessary once to authenticate your DockerHub Id docker push danielguerra/ssh-container