使用Dockerfile创建支持SSH服务的镜像详解架构师

1.前面我们学习了使用Dockerfile,那接下来我们就用Dockerfile创建一个支持SSH服务的镜像。

2.首先创建一个目录ssh_centos

[[email protected] ~]# cd /home/xm6f/dev/ 
[[email protected]-nameserver4 dev]# mkdir ssh_centos 
[[email protected]-nameserver4 dev]# cd ssh_centos

 

3.在ssh_centos目录中创建Dockerfile和run.sh两个文件
run.sh文件中的内容如下:

#!/bin/bash 
/usr/sbin/sshd -D

 

4.创建authorized_keys,连接ssh时免密登录

$ touch authorized_keys 
将宿主机/root/.ssh/id_rsa.pub拷贝到/home/xm6f/dev/ssh_centos/authorized_keys文件中 
$ cat /root/.ssh/id_rsa.pub > authorized_keys 
$ cd /home/xm6f/dev/ssh_centos/ 
$ ls 
authorized_keys run.sh 
$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJknOFfX+vXDGDesHovetbYezR/8142lDTxD34s33+fxhP40FVmjHN/u09s9bKngR6Jfj3ogbsrfg7gCEMPHnhzVzMxIyJzZBk898Wd7qV0HIJ9BHEo25cjkv4k55yZPkcm309VdMFUOiIp+66dtgmbjG23Zu/VAK+faJEhV1vtLhU7SCGF+yUKPSOmgs0mVCcIJKozv1duw8ERaybLI+UGGCJv9CHCm27rC7e+/dCuyNCRw/35s650AUWfHHgt6/26Med/2xl4tt8RzpDAi2KOlTj5Dqay5uNXC/xCRp7edZkv8UBoEDfbMsuGPJlqeQQEDbkqNb/2sLY5ayCOFRD [email protected]

 

注意:如果/root/.ssh/id_rsa.pub文件不存在,通过如下命令创建:
$ ssh-keygen -t rsa -P ”

接下来就是定义Dockerfile,vim Dockerfile

FROM centos 
MAINTAINER ruthless 416501600@qq.com 
#安装ssh服务 
RUN yum install passwd openssl openssh-server -y 
RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' 
RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' 
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' 
 
#创建目录 
RUN mkdir -p /root/.ssh 
#复制配置文件到相关位置,并修改权限 
ADD authorized_keys /root/.ssh/authorized_keys 
ADD run.sh /run.sh 
RUN chmod 700 /run.sh 
#开放端口22 
EXPOSE 22 
#设置容器启动时执行的命令 
CMD ["/run.sh"]

 

为authorized_keys配置777权限 

chmod 777 /home/xm6f/dev/ssh_centos/authorized_keys

 

5.通过Dockerfile生成ssh_test镜像

$ ls 
authorized_keys Dockerfile run.sh 
$ docker build -t ssh_test .

等待运行完成。

6.使用docker images查看刚刚构建的镜像。

$ docker images 
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE 
ssh_test                     latest              22085f6119f9        21 seconds ago      305MB

 

7.测试镜像,运行容器

$ docker run -d -p 20221:22 --name sshtest ssh_test 
$ docker logs sshtest ##查看容器日志,没报错表示容器运行成功

 

8.在宿主机上运行

ssh root@192.168.1.160 -p 20221

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/6780.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论