上一篇 下一篇 分享链接 返回 返回顶部

使用Dockerfile创建支持SSH服务的镜像的步骤

发布人:优库云 发布时间:2024-09-09 21:15 阅读量:255

想通过Dockerfile来创建一个可以支持SSH服务的镜像一般步骤含哪些?先创建工作目录:

# mkdir sshd_ubuntu  

 

# ls  

在其中继续创建Dockerfile和run.sh文件:

# cd sshd_ubuntu/  

 

# touch Dockerfile run.sh  

 

# ls  

再编写run.sh脚本和authorized_keys文件

# vi run.sh  

 

写入内容

#! /bin/bash

 

/usr/sbin/sshd –D

在宿主机中生成SSH密钥对,并创建authorized_keys。

# ssh-keygen –t rsa

生成公钥/私钥rsa密钥对。

输入要保存密钥的文件(/root/.ssh/id rsa):

id rsa

[rootalocalhost sshd ubuntu]# ssh-keyqen -t rsa

输入密码(如果没有密码,请填空):idrsa

 

再次输入相同密码:idrsa

# cat ~/sshd_ubuntu/id_rsa.pub >authorized_keys

# ls

[root@localhost sshd ubuntul# ls

 

authorized keys

Dockerfile id rsa id rsa.pub run.sh

然后就可以开始编写Dockerfile。

#设置继承镜像

FROM ubuntu

#提供一些作者的信息

MAINTAINER from www.dockerpool.com by Aiden

#下面开始运行命令,此处更改Ubuntu的源为国内163的源

RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list

RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list

RUN apt-get update

#安装ssh服务

RUN apt-get install -y openssh-server

RUN mkdir -p /var/run/sshd

RUN mkdir -p /root/.ssh

#取消pam限制

RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd

#复制配置文件到相应位置,并赋予脚本可执行权限

ADD authorized_keys /root/.ssh/authorized_keys

ADD run.sh /run.sh

RUN chmod 755 /run.sh

#开放端口

EXPOSE 22

#设置自启动命令

CMD ["/run.sh"]

创建镜像,要注意在最后一个“.”表示使用当前目录中的Dockerfile

# docker build –t ssh:dockerfile .

Step 16/17 : EXPOSE 22

 

--> Running in 8127c0773eb6

Removing intermediate container 8127c0773eb6

--> 43deeebb36b0

Step 17/17 : CMD ["/run.sh"]

---> Running in 71a583b3lea4

Removing intermediate container 71a583b31ea4

---> 18d5664af464

Successfully built 18d5664af464

Successfully tagged sshd:dockerfile

命令执行完,可以看到Successfully built xxx表示镜像创建成功。在本地查看镜像sshd:dockerfile镜像已存在:

#docker images

测试镜像和运行内存,使用刚才创建sshd:dockerfile镜像来运行一个容器。直接启动镜像,映射容器的22端口到本地10122端口。

# docker run –d –p 10122:22 sshd:dockerfile

 

# docker ps

在宿主机新打开一个终端,连接到新建的容器

# ssh 192.168.56.33 –p 10122

这样就可以创建好镜像了如需帮助,请联系优库云

目录结构
全文