码迷,mamicode.com
首页 > 其他好文 > 详细

docker基于Dockerfile命令创建支持ssh服务的镜像

时间:2017-02-22 18:23:19      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:config   cmos   success   xxx   .com   .sh   alt   安装   margin   

首先,创建一个sshd_centos工作目录:

[root@localhost ~]# mkdir sshd_centos

[root@localhost ~]# cd sshd_centos

[root@localhost sshd_centos]# touch Dockerfile run.sh

技术分享 

[root@localhost sshd_centos]# ssh-keygen -t rsa

[root@localhost sshd_centos]# cat ~/.ssh/id_rsa.pub > authorized_keys

 技术分享

编写Dockfile文件

[root@localhost sshd_centos]# vim Dockerfile

#设置继承镜像

FROM docker.io/centos

#提供作者信息

MAINTAINER from xldwhj (wanghaojie@cmos.chinamobile.com)

#开始运行命令

RUN yum -y update

#安装openssh-serverfuwu

RUN yum -y install openssh-server

#修改/etc/ssh/sshd_config

RUN sed -i ‘s/UsePAM yes/UsePAM no/g‘ /etc/ssh/sshd_config

RUN mkdir -p /var/run/sshd

RUN mkdir -p /root/.ssh

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

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

ADD authorized_keys /root/.ssh/authorized_keys

ADD run.sh /run.sh

RUN chmod 755 /run.sh

#变更root密码为123123

RUN echo "root:123123"|chpasswd

#开放22端口

EXPOSE 22

#运行脚本,启动sshd服务

CMD ["/run.sh"]

技术分享 

Dockerfile里的两条ssh-keygen要加上,如果不加ssh启动就会报如下错误。

技术分享

在ssh_centos目录下,docker build命令来创建镜像。注意,此条命令后又一个“.”,代表当前目录中的Dockerfile。

[root@localhost sshd_centos]# docker build -t sshd:dockerfile .

执行到最后出现Successfully build XXX字样,则说明镜像创建成功。

技术分享

[root@localhost sshd_centos]# docker images

技术分享

使用sshd:dockerfile镜像运行一个容器。直接起动镜像

[root@localhost sshd_centos]# docker run -d -p 10222:22 sshd:dockerfile

技术分享

[root@localhost .ssh]# ssh root@192.168.134.130 -p 10022

技术分享

如上所示,成功使用ssh登入到容器中。

docker基于Dockerfile命令创建支持ssh服务的镜像

标签:config   cmos   success   xxx   .com   .sh   alt   安装   margin   

原文地址:http://www.cnblogs.com/whutxldwhj/p/6429929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!