文档章节

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

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

原文链接: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
博文 276
码字总数 243077
作品 0
海淀
架构师
docker supervisor管理进程

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

常亚亚
2017/05/24
0
0
Dockerfile:制作可ssh登录的镜像

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

张斌_青岛
2014/12/02
0
0
通过DockerFile创建ssh服务镜像

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

koumm
2017/06/14
0
0
Docker常用的编排管理工具(批量管理)

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

期待有一天
2017/08/01
0
0
Linux的企业-docker简介及操作

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Aop原理之切点表达式解析

在前面的文章(Spring AOP切点表达式详解)中,我们总结了Spring Aop切点表达式的用法,而在上文(Spring Aop原理之Advisor过滤)中我们讲到,切点表达式的解析主要是在PatternParser.parse...

爱宝贝丶
16分钟前
0
0
网络工程师真的也需要好好学习linux系统

作为一名刚工作半年的小网工,想总结一下工作半年来的一些感悟。由于本人是网络工程专业,毕业前找工作的目标也是网络工程师,在经过几次面试后如愿以偿的找到了网络工程师的工作。由于上学时...

linuxprobe16
22分钟前
0
0
RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
59分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
今天
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部