创建docker镜像需要基础镜像,目前官方已提供了多种基础镜像,参见: https://hub.docker.com/explore/

  要想创建支持centos的ssh镜像,就需要以centos镜像为基础来创建,下面是创建步骤:

  1. docker pull centos:6     #获得centos 6系统的镜像

2. 新建在容器中启动sshd服务的脚本,编辑run.sh:

    #!/bin/bash

    /usr/sbin/sshd -D

  3. 在宿主机上生成RSA密钥,然后将生成的密钥复制到sshd_centos目录中:

    ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

    cp /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /root/sshd_centos

    cat ssh_host_rsa_key.pub>authorized_keys

  4. 在/root/sshd_centos目录下新建Dockerfile文件:

#生成的新镜像以centos镜像为基础
FROM centos
MAINTAINER by cmzsteven (changmingzhi@.com)
#升级系统
RUN yum -y update
#安装openssh-server
RUN yum -y install openssh-server
#修改/etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#将密钥文件复制到/etc/ssh/目录中
ADD ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key
ADD ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub
RUN mkdir -p /root/.ssh
ADD authorized_keys /root/.ssh/authorized_keys
#将ssh服务启动脚本复制到/usr/local/sbin目录中,并改变权限为755
ADD run.sh /usr/local/sbin/run.sh
RUN chmod /usr/local/sbin/run.sh
#变更root密码为147258
RUN echo "root:147258"|chpasswd
#开放窗口的22端口
EXPOSE
#运行脚本,启动sshd服务
CMD ["/usr/local/sbin/run.sh"]

  5. 切换到Dockerfile文件夹,编译生成镜像:

    docker build -t sshd:dockerfile .

  6. 查看镜像文件情况:

   docker images

   

  7. 利用新建的镜像启动一个容器:

    docker run -d -p 10022:22 sshd:dockerfile /usr/local/sbin/run.sh

    其中:将宿主机的10022端口映射到容器的22端口,并启动sshd服务。 现在就可以使用ssh工具远程通过宿主机的10022端口访问容器了。

  如果想编译docker源码,则需要以docker镜像作为基础镜像(官方建议,内部已集成编译环境),也就是说所有关于镜像都需要由基础镜像出发进行创建。

  

相关文章:

Docker源码分析

http://www.infoq.com/cn/articles/docker-source-code-analysis-part1/

Dcokerfile书写规则

http://blog.csdn.net/qinyushuang/article/details/43342553

Docker源码编译

http://www.cnblogs.com/styshoo/p/5824895.html

涉及cgroup资源控制的配置

http://baike.baidu.com/link?url=jRMznyBNXOVJG9rVmLNt_bim7HgLIYgT4fbynJp0uqG25lMBmVHQZxxJRp1LYoYqRE1RDsZrKQbM7u62xB5gQK

 

利用docker创建支持centos的ssh镜像的更多相关文章

  1. Docker创建支持ssh服务的容器和镜像

    原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...

  2. Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_164 书接上回,之前一篇:Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最 ...

  3. Docker入门(windows版),利用Docker创建一个Hello World的web项目

    Docker 当大家点开这篇博客的时候,相信大家对docker多多少少也有些认识了,最近学习docker这门技术,略微有些心得,写篇文章记录一下学习过程并帮大家跳过一些坑. docker的核心有两个, ...

  4. 利用docker创建包含需要python包的python镜像

    一.拉取python镜像 需要先安装docker,这里读者自行搜索docker的安装过程,下面我们拉取python镜像:以3.7.4为例 docker pull python:3.7.4 二.进入容器 ...

  5. docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker

    在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...

  6. 使用docker创建含有FFmpeg的自定义镜像

    Dockerfile文件 FROM openjdk:8-jre-alpine MAINTAINER "yvioo" RUN echo "http://mirrors.al ...

  7. 9. 利用Docker快速构建MGR | 深入浅出MGR

    目录 1.安装Docker 2.拉取GreatSQL镜像,并创建容器 2.1 拉取镜像 2.2 创建新容器 2.3 容器管理 3.构建MGR集群 3.1 创建专用子网 3.2 创建3个新容器 3.3 ...

  8. 使用docker创建和运行跨平台的容器化的mssql数据库

    我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库.如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用dock ...

  9. docker 创建mysql和redis

    1      镜像加速 创建docker 目录 sudo mkdir -p /etc/docker 镜像加速: sudo tee /etc/docker/daemon.json <<-'E ...

随机推荐

  1. BZOJ 2225 [Spoj 2371]Another Longest Increasing(CDQ分治)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2225 [题目大意] 给定N个数对(xi,yi),求最长上升子序列的长度. 上升序列定义 ...

  2. 【动态规划去除冗余】NOIP2010-乌龟棋

    [题目大意] [思路] 最简单的思路是五维数组,但是当前走到的步数由已经取到的卡片决定,所以只需要四维.本来想要改一个滚动数组的,但是好像没有滚起来,算了(ノ`Д)ノ. 在学校要晚自习到21:15,回 ...

  3. 解决 javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair

    解决这个异常的重点就在于下载两个jar包: bcprov-ext-jdk15on-1.52 bcprov-jdk15on-1.52 传送门:https://stackoverflow.com/ques ...

  4. Failed to Attach to Process ID Xcode 解决办法

    方法1. go to the Product menu and find the Edit Scheme menu there. While in Edit Scheme window, select ...

  5. [转载]memcached 命令操作详解

    转载:http://www.cnblogs.com/azheng007/p/3159345.html 一.存储命令 存储命令的格式: <command name> <key> ...

  6. [标准性文档]WEB应用安全验证标准

    这是根据OWASP ASVS翻译过来的,可作为WEB应用开发的验收标准(未包含具体细节),值得注意的是,验收标准并非越严格越好,应根据企业自身的业务需求判定. WEB应用安全验证标准 安全验证等级的定 ...

  7. IIS配置Asp.net时,出现“未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0”

    如果出现未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0, 主要是没有安装.net framwork 3.5,安装一下就行了. ...

  8. c/c++代码的unit-test中覆盖率的统计

    gcov lcov genhtml工具      gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信 ...

  9. Dependent Parameters in Concurrent Program using Special Value Set

    Dependent Parameters in Oracle Applications Requirement: Say there is a concurrent program that lets ...

  10. iOS中 xib自定义View在storyboard中的使用

    1,创建UIView 的SubClass 命名为MyView 2, new一个名为MyView的xib p1 3,配置xib的属性 p2 4,为View 添加背景色,添加一个按钮并定制按钮约束,这里我 ...