Docker实战:基于centos7镜像创建可以ssh链接的Docker容器

基于centos7镜像创建可以ssh链接的Docker容器

1、在root目录下新建 ssd文件夹

2、在ssd下创建 Dockerfile文件,内容如下:
# 选择一个已有的os镜像作为基础
FROM centos

# 镜像的作者
MAINTAINER liyuejin

#安装wget并下载最新的源Centos-7.repo
RUN yum -y install wget
RUN rm -rf /etc/yum.repos.d/*
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum clean all

# 安装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

#生成密钥对,有rsa,dsa,ed25519的加密方式,根据这几种加密方式来生成对应的密钥对
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22

#启动sshd服务
CMD ["/usr/sbin/sshd", "-D"]


3、创建镜像,使用如下命令
docker build -t sshd:dockerfile .
命令执行完毕后,如果可见“Successfully built xxx”字样,则说明镜像创建成功,命令的最后还能看到生成的镜像的ID。
注意:在最后还有一个".",表示使用当前目录中的Dockerfile创建镜像。

4、编译成功后使用 docker images查看生成的镜像

5、使用镜像创建容器 docker run -d --name myssh -p 10022:22 sshd:dockerfile

6、查看生成的容器 docker ps -a

7、使用admin通过ssh命令登录容器 ssh admin@172.17.0.2 -p 22
可能会遇到的问题:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that a host key has just been changed.The fingerprint for the RSA key sent by the remote host isSHA256:6zKiuPSPE90dB6PNCj1fICgA1DTrTxPFiVbl82+sS0E.Please contact your system administrator.Add correct host key in /c/Users/xuliugen/.ssh/known_hosts to get rid of this message.Offending RSA key in /c/Users/xuliugen/.ssh/known_hosts:4RSA host key for 119.19.19.19 has changed and you have requested strict checking.Host key verification failed.
解决方法:
在客户端执行指令 vi ~/.ssh/known_hosts,则把里面与所要连接IP(119.19.19.19)相关的内容删掉即可.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值