文档章节

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

加油2018
 加油2018
发布于 2015/01/04 16:19
字数 499
阅读 120
收藏 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
码字总数 246145
作品 0
海淀
架构师
私信 提问
加载中

评论(0)

Docker使用(三)使用Dockerfile创建镜像以及为镜像添加SSH服务

Dockerfile 是一个文本格式的配置文件, 可以使用Dockerfile 来快速创建自定义的镜像。Dockerfile有典型的基本结构及其支持的众多指令,具体可以参照Docker技术入门与实践,这篇博客(Docker...

osc_03x3hb6x
2019/09/11
2
0
Docker实战(七)之为镜像添加SSH服务

1.基于commit命令创建 Docker提供了docker commit命令,支持用户提交自己对制定容器的修改,并生成新的镜像。命令格式为docker commit CONTAINER [REPOSITORY[:TAG]]。 (1)创建一个镜像 dock...

youcongtech
2018/07/07
0
0
Docker 添加容器SSH服务

很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等. 基于commit命令创建 Do...

osc_f66lkchr
2019/05/15
2
0
读书笔记---《Docker 技术入门与实践》---为镜像添加SSH服务

之前说到可以通过attach和exec两个命令登陆容器,但是如果遇到需要远程通过ssh登陆容器的场景,就需要手动添加ssh服务。 下面介绍两种方法创建带有ssh服务的镜像,commit命令创建和通过Docke...

osc_ksu944qm
2019/07/24
2
0
Docker:使用Dockerfile创建支持SSH服务的镜像

1、创建工作目录 # mkdir sshd_ubuntu # ls 在其中,创建Dockerfile和run.sh文件 # cd sshd_ubuntu/ # touch Dockerfile run.sh # ls 2、 编写run.sh脚本和authorized_keys文件 # vi run.sh ......

Aiden郭祥跃
2018/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

给大家讲一个笑话:技术是无国界的!

在我接触互联网的最初几年,总会在技术论坛上看到有人宣称:技术是没有国界的,我深信不疑! 做程序员之后,我慢慢接触到了很多很多的开源软件,我真的无比的感慨:开源是人类最伟大的发明。...

osc_hzf6peqc
29分钟前
13
0
医学多模态图像分割小结 - 知乎

在医学图象中,多模态数据因成像机理不同而能从多种层面提供信息。多模态图像分割包含重点问题为如何融合(fusion)不同模态间信息,本文主要记录笔者最近所读,欢迎批评指正补充 1. A review:...

osc_htns3spg
30分钟前
24
0
Curve-GCN:图卷积网络用于活动轮廓演变 - 知乎

CNN做分割需要处理数据量很大的grid数据,需要对所有点的label进行预测,而且传统CNN并不会结合点与点之间的联系。 使用图结构建模分割轮廓或分割曲面,然后采用GCN,仿照传统的deformable ...

osc_q7wo0k6s
31分钟前
26
0
录好的音频在哪个文件夹?迅捷录音软件还能这么查找!

录好的音频在哪个文件夹?在录制之前经常忘记调整保存位置,等到录完音频才发现,自己竟然找不到音频文件了。这种情况在录音的时候并不少见,软件的音频文件会默认保存在安装目录下,找起来确...

dawda
31分钟前
22
0
docker: Error response from daemon: Conflict. The container name "/xx" is already in use

使用docker 出现Error response from daemon: Conflict. The container name “***” is already in use 解决方法: (1)给容器换一个名字, 比如说 docker run -it --name=mycentos2 centos......

osc_h7q38oso
32分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部