Docker技术入门之---为镜像添加SSH服务(7)

本章将详细介绍创建容器的两种方法:

  • 基于Docker commit命令创建
  • 基于Dockerfile创建

基于docker commit命令创建一个容器

   首先,启动一个centos容器

  # docker run -it centos /bin/bash

  安装openssh-server net-tools服务

  # yum -y install openssh-server net-tools

  修改/etc/ssh/sshd_config配置文件,并将HostKey /etc/ssh/ssh_host_ecdsa_key和HostKey /etc/ssh/ssh_host_ed25519_key注释掉。

  HostKey /root/.ssh/id_rsa
  #HostKey /etc/ssh/ssh_host_rsa_key
  #HostKey /etc/ssh/ssh_host_dsa_key
  #HostKey /etc/ssh/ssh_host_ecdsa_key
  #HostKey /etc/ssh/ssh_host_ed25519_key  

  使用命令ssh-keygen生成秘钥对

  # ssh-keygen -t rsa

   通过命令将容器commit成镜像。

  # docker commit af81653210eb sshd/centos:0.1

  启动新生成的镜像

  # docker run -itd -p 2222:22 sshd/centos:0.1 /bin/bash

  在宿主主机(192.168.1.200)或其他主机上上,可以通过SSH访问2222端口来登录容器

  # ssh  10.10.0.164 -p 2222

 

使用Dockerfile创建

  创建工作目录

  # mkdir docker

  在docker中创建Dockerfile

# 设置继承镜像
FROM centos:latest
# 提供一些作者的信息
MAINTAINER weidong (weidong@docker.com)
ENV ROOT_PASSWORD 123456
# 下面开始安装ssh服务
RUN yum -y install openssh-server net-tools vim
RUN echo $ROOT_PASSWORD |passwd --stdin root

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

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

   创建镜像

  # docker buile -f docker/dockerfile -t sshd/centos:0.1 .

 

 

  

  

 

  

posted @ 2019-07-22 15:20  摩天居士-谢烟客  阅读(201)  评论(0编辑  收藏  举报