基于dockerfile实现支持ssh功能的镜像

Posted DreamMakers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于dockerfile实现支持ssh功能的镜像相关的知识,希望对你有一定的参考价值。

在上一篇文章中,介绍了基于docker commit命令实现支持ssh服务的镜像生成过程。

在这篇文章中,实际操作下,看看如何通过dockerfile来实现支持ssh功能的镜像。

首先创建工作目录sshd_ubuntu,如下所示,然后在工作目录中创建Dockerfile文件和run.sh脚本文件。

其中,我们编辑run.sh脚本文件,内容如下所示:

在写好run.sh脚本文件之后,为了SSH登录,我们还需要在在目标容器中添加宿主主机的秘钥,如下所示,使用cat命令将id_rsa.pub文件内容拷贝到authorized_keys文件中。

如果没有这个文件,则可以使用sshgen -t rsa命令生成相应文件。

cat ~/.ssh/id_rsa.pub > authorized_keys

接下来就是很重要的Dockerfile文件,文件内容如下:

(这里使用多个RUN只是为了排版上好看点,实际过程中一般将多个RUN命令合并在一起生成一个镜像。)

最后我们就可以使用docker build -t 命令来进行镜像的构建了,并且最终生成我们想要的镜像。

当构建完成后,我们可以看到类似这样的输出信息,表明镜像已经成功创建。

最后我们来验证一下这个创建的容器是否能够满足我们的要求,即支持SSH登录。

首先我们创建一个机遇sshd:dockerfile的容器,如下所示:

可以看到有个b72a7484fc19的容器,接下来我们SSH登录到这个容器中,

可以看到,我们成功的SSH登录了我们想要进入的目标容器中。至此,基于dockerfile如何创建支持SSH服务的镜像便讲解完毕了,可以将这个镜像提交到远程仓库中或者作为基础镜像为后序其他项目做准备。

以上是关于基于dockerfile实现支持ssh功能的镜像的主要内容,如果未能解决你的问题,请参考以下文章

基于alpine用dockerfile创建的ssh镜像

基于Python+Git+SSH+Flask的镜像 Dockerfile文件分享

基于Python+Git+SSH+Flask的镜像 Dockerfile文件分享

用dockerfile创建支持ssh服务的centos镜像

通过Dockerfile创建支持SSH服务的docker镜像(centosUbuntu)

Docker:使用Dockerfile创建支持SSH服务的镜像