Docker创建支持SSH服务的镜像(二)

2018-10-29  本文已影响14人  CSeroad

前言

根据《Docker技术入门与实战》一书,进行实验操作。 

在kali(宿主机)上创建支持ssh服务的镜像的第二种方法。

创建镜像

使用Dockerfile

先创建sshd_ubuntu工作目录,在其中创建Dockerfile和run.sh文件。

编写run.sh脚本和authorized_keys文件

run.sh文件内容为

#!/bin/bash

/usr/sbin/sshd  -D

准备文件

同样在宿主机上生成SSH密钥对,并创建authorized_keys文件。

编写Dockerfile文件

#设置继承镜像

FROM ubuntu:14.04

#作者信息

MAINTAINER from  csroad

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 requiredpam_loginuid.so/#session required pam_loginuid.so/g'   /etc/pam.d/sshd

#复制配置文件到指定位置

RUN authorized_keys  /root/.ssh/authorized_keys

ADD  run.sh  /run.sh

RUN  chmod  755 /run.sh

#开放端口

EXPOSE  22

#设置自启动命令

CMD  ["/run.sh"]

Dockerfile

FROM 继承的镜像

MAINTAINER 作者

RUN执行的命令

ADD拷贝到镜像

EXPOSE暴露的端口

CMD指定默认容器主进程的启动命令。

编写Dockerfile文件就是相当于把手动创建SSH服务的步骤使用命令集合在一起。

保存镜像

docker build -t  sshd:dockerfile  . 

. 表示使用当前目录中的Dockerfile 

build success

命令执行成功。

运行容器

docker run  -d  -p  10122:22  sshd:dockerfile

docker  ps

宿主机尝试进行连接

ssh  192.168.1.200  -p   10122

succes
上一篇下一篇

猜你喜欢

热点阅读