基于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)相关的内容删掉即可.