创建SSH容器

5.1基于commit命令的方式

1、主机生成公钥
[root@localhost ~]#ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''

2、开启一个容器
[root@localhost ~]# docker run -it  ubuntu /bin/bash

3、安装ssh服务
root@22afa4e3eafe:/#apt-get -y install openssh-server

4、实现密钥登录
root@22afa4e3eafe:/#mkdir ~/.ssh && chmod 600 ~/.ssh
root@22afa4e3eafe:/#echo "your_公钥" >> ~/.ssh/authorized_keys
root@22afa4e3eafe:/#chmod 600 ~/.ssh/authorized_keys

5、进行验证
root@22afa4e3eafe:/#/etc/init.d/ssh start
root@22afa4e3eafe:/#ss -ntlp

6、写一个启动脚本
root@22afa4e3eafe:/#cat ~/ssh_run.sh
#!/bin/bash
/usr/sbin/sshd -D
root@22afa4e3eafe:/#chmod +x ~/ssh_run.sh

7、打包
[root@localhost ~]#docker commit ff3e9d6c0f6f  x180/ssh_commit:v1

8、运行一个容器
[root@localhost ~]#docker run -d -p 2000:22 x180/ssh_commit:v1 /root/ssh_run.sh

通过ssh进行登录容器
#ssh root@ip -p 2000


5.2基于Dockerfile的方式

1、
[root@localhost ~]# mkdir ~/ssh_dockerfile
[root@localhost ~]# cd ssh_dockerfile/
[root@localhost ssh_dockerfile]# ls
authorized_keys  Dockerfile  run.sh

[root@localhost ssh_dockerfile]# cat Dockerfile
#使用的基础镜像
FROM ubuntu:latest
#维护者信息
MAINTAINER x180 [email protected]
#安装ssh服务
RUN apt-get -y  install openssh-server
#这个地方我采用了先启动再停止的做法,因为如果去掉这一步,会遇到错误
RUN /etc/init.d/ssh start && sleep 3 && /etc/init.d/ssh stop
RUN mkdir -p /root/.ssh
RUN chmod 600 /root/.ssh
ADD authorized_keys /root/.ssh/authorized_keys
RUN chmod 600 /root/.ssh/authorized_keys
ADD run.sh /root/run.sh
RUN chmod +x /root/run.sh
EXPOSE 22
CMD ["/root/run.sh"]
2、
[root@localhost ssh_dockerfile]# cat run.sh
#!/bin/bash
/usr/sbin/sshd -D

3、创建镜像
[root@localhost ssh_dockerfile]# docker build -t x180/ssh_dockerfile:v1 ./
[root@localhost ssh_dockerfile]# docker run -d -p 2022:22 x180/ssh_dockerfile:v1 /root/run.sh
4、进行连接
[root@localhost ssh_dockerfile]# ssh [email protected] -p 2022

你可能感兴趣的:(ssh,docker)