文档章节

Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

加油2018
 加油2018
发布于 2015/01/04 16:19
字数 499
阅读 101
收藏 1
点赞 1
评论 0

原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

1. 首先创建一个Dockerfile文件,文件内容如下

# 选择一个已有的os镜像作为基础  
    FROM centos:centos6  
       
    # 镜像的作者  
    MAINTAINER Fanbin Kong "kongxx@hotmail.com"  
       
    # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no  
    RUN yum install -y openssh-server sudo  
    RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config  
       
    # 添加测试用户admin,密码admin,并且将此用户添加到sudoers里  
    RUN useradd admin  
    RUN echo "admin:admin" | chpasswd  
    RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers  
       
    # 下面这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录  
    RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key  
    RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key  
       
    # 启动sshd服务并且暴露22端口  
    RUN mkdir /var/run/sshd  
    EXPOSE 22  
    CMD ["/usr/sbin/sshd", "-D"]

Dockerfile文件有自己的语法和命令,具体可以参考Docker的官方文档。

2. 有了Dockerfile文件以后,就可以根据Dockerfile来创建image文件了,在Dockerfile所在的目录下,运行下面的命令
  1. sudo docker build -t centos6-ssh .  
命令成功后,就会创建一个名字为centos6-ssh的image,可以使用“sudo docker images”来查看。

3. 此时就可以根据上面创建出来的image文件来创建自己的容器了,下面的命令会创建一个名字为“mytest”的容器。

  1. sudo docker run -d -P --name=mytest centos6-ssh  

4. 有了容器,就可以测试我们的ssh服务了。

4.1 运行“sudo docker inspect mytest”,查看当前启动容器IP地址,然后运行下面的命令来测试

  1. ssh admin@<容器IP>  
4.2 另外,也可以通过docker的端口映射来访问, 使用“sudo docker port mytest 22”查看当前容器的22端口对应的宿主机器的端口,然后通过下面的命令来访问
  1. ssh admin@<宿主机器IP> -p <宿主机器端口> 

本文转载自:http://blog.csdn.net/kongxx/article/details/38412119

共有 人打赏支持
加油2018
粉丝 150
博文 184
码字总数 243077
作品 0
海淀
架构师
docker supervisor管理进程

Supervisor管理进程 Docker容器在启动的时候开启单个进程,比如,一个ssh或者apache的daemon服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命名放...

常亚亚 ⋅ 2017/05/24 ⋅ 0

Dockerfile:制作可ssh登录的镜像

我们先手动制作一个可以ssh登录的容器,然后按照操作步骤编写Dockerfile,用docker build根据Dockerfile创建镜像,最后我们可以用这个镜像来生成可ssh登录的容器了。 一、首先创建一个容器并...

张斌_青岛 ⋅ 2014/12/02 ⋅ 0

通过DockerFile创建ssh服务镜像

说明:创建一个含有sshd服务的基础镜像,再在这个基础镜像中创建其它中间件镜像,再利用中间件镜像创建应用容器。通过Dockerfile可以创建任意自定义容器,配合supervisord服务完美搭配。 1....

koumm ⋅ 2017/06/14 ⋅ 0

Docker常用的编排管理工具(批量管理)

前言:我们都知道docker的好处,总而言之就是多快好省。那我们要能够玩转docker就得知道配合docker使用的两种工具-------Supervisor和Compose.我来分别介绍这两种工具和如何使用。 Docker常用...

期待有一天 ⋅ 2017/08/01 ⋅ 0

【Docker江湖】之创建Web应用服务镜像——Apache/Nginx

写在前边的话 Web应用服务器的价格是真的贵,而且在一个web服务器上创建多个web应用也不是很方便,那么有没有好办法来解决这个问题,答案是肯定的,有了Docker那就可以在在一个服务器上创建多...

科技小能手 ⋅ 2017/11/12 ⋅ 0

Linux的企业-docker简介及操作

一.Docker docker 是一个应用容器引擎,让开发者可以打包安装他们的应用,以及依赖包到一个可移植容器中去,然后发布到任何Linux容器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间...

一百个小排 ⋅ 2017/10/25 ⋅ 0

Docker 基础知识-入门篇

1. Docker简介和KVM区别 1.1 docker的三大理念 构建 运输 运行 ps:有点类似于java代码,一次构建到处运行 1.2 docker结构 相关说明: image: 和虚拟机的镜像类似 container: 用镜像创建的实例...

wzaqj ⋅ 06/06 ⋅ 0

利用Dockerfile文件创建带有sshd服务的centos镜像

1、安装docker并启动docker,不在赘述 2、创建使用Dockerfile安装sshd服务的目录,名字路径自定义 mkdir sshd_centos cd sshd_centos 3、编辑启动sshd服务的脚本文件 vim run.sh内容为 #!/b...

射手Mr吴 ⋅ 2016/07/19 ⋅ 0

Docker 快速学习(一)

Docker 快速学习(一) 操作系统:centos 6.5 一、安装: 1、配置epel源: yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.n......

ZhouLS ⋅ 2014/07/18 ⋅ 0

【系列2】使用Dockerfile创建带sshd服务的Centos Docker镜像

使用Dockerfile创建 在第一部分中曾介绍过Dockerfile的基础知识,下面将介绍如何使用Dockerfile来创建一个支持SSH服务的镜像。 ① 创建工作目录 首先应创建一个sshdcentos工作目录: [root@...

Mr_sheng ⋅ 2017/11/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout基于内存的DataMode 推荐引擎Demo2

Mahout基于内存的DataMode 推荐引擎Demo2 //注释的部分是基于文件也可以理解为基于日志文件的, //DataModel 可以有很多种,实现abstractDataMode的子类,原则上都可以作为数据源,个人觉得,...

xiaomin0322 ⋅ 17分钟前 ⋅ 0

Docker部署Tomcat及Web应用

一、在线下载docker yum install -y epel-releaseyum install docker-io # 安装dockerchkconfig docker on # 加入开机启动service docker start # 启动docker服务 1 ...

Jeam_ ⋅ 18分钟前 ⋅ 0

研发运营一体化能力成熟度模型

研发运营一体化是指在 IT 软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部 署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无...

stars永恒 ⋅ 23分钟前 ⋅ 0

jQuery缩小放大触发事件

jquery的resize()方法使用 <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> var i = 0; $(document).ready(function(){ ......

RobertZou ⋅ 23分钟前 ⋅ 0

eclipse python 搭建

https://jingyan.baidu.com/article/9113f81b68ebce2b3214c7e0.html https://www.cnblogs.com/ZhangRuoXu/p/6397756.html https://blog.csdn.net/zhangphil/article/details/78962159 字符集......

之渊 ⋅ 24分钟前 ⋅ 0

weex,react native,flutter

weex: 一次编写,处处运行 RN: 学一次,到处写(针对安卓,IOS平台特性 各自写,会有很大一部分是一样的代码) 这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因...

东东笔记 ⋅ 30分钟前 ⋅ 0

Spring Cloud微服务分布式云架构-集成项目

Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必...

明理萝 ⋅ 35分钟前 ⋅ 1

SpringMVC图片上传问题解决

当我们上传图片时一直发现: MultipartFile file = null; if (request instanceof MultipartHttpServletRequest) 匹配不上, 解决方案: 在前端xml加入如下配置代码即可 <!-- 图片上传bean --...

泉天下 ⋅ 37分钟前 ⋅ 0

Spring表达式语言(SpEL)

1、SpEL引用 Spring EL在bean创建时执行其中的表达式。此外,所有的Spring表达式都可以通过XML或注解的方式实现。下面将使用Spring表达式语言(SpEL),注入字符串,整数,Bean到属性。 SpEL的...

霍淇滨 ⋅ 53分钟前 ⋅ 0

Gradle使用阿里云镜像

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方做一点系统全局的设置,如配置仓库地址。 你可以在以下几个位置实现仓库地址...

明MikeWoo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部