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

前言

根据《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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。