码迷,mamicode.com
首页 > 其他好文 > 详细

docker容器开启sshd

时间:2018-11-20 15:06:36      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:ssh -p 22   root密码   std   etc   ssh   nss   直接   dev   设置   

没钱买服务器又不想安装虚拟机怎么办?

我们知道docker是可以用exec来直接访问容器的,但是还不够high,有时候要模拟服务器的登录总不能用docker exec吧,来吧,老司机带你飞!

以centos为例,需要几步操作

1.安装openssh-server

2.初始化root用户密码

3.开启sshd服务

废话不多说,dockerfile献上

FROM centos
RUN yum install -y wget && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  && yum install -y passwd && yum install -y openssh-server  ssh-keygen && echo ‘abcd1234‘ | passwd root --stdin
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" -q && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" -q && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" -q
#RUN systemctl enable sshd
CMD /usr/sbin/sshd && tail -f /var/log/wtmp

简单解释一下,

安装openssh-server

yum install -y wget && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  && yum install -y passwd && yum install -y openssh-server  ssh-keygen

修改root密码为abcd1234

echo abcd1234 | passwd root --stdin

创建ssh-keygen创建相关的ssh文件,-q的意思是静默模式(就是默认是需要让你回车输入的,加上这个直接跳过)

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" -q && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" -q && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" -q

开启sshd服务,并用tail来前台执行阻止docker容器退出 

CMD /usr/sbin/sshd && tail -f /var/log/wtmp

 

构建镜像

Dockerfile目录下执行,yeah,就是chenqionghe/centos镜像,你也可以弄成自己的,例如muscle/lightwegiht

docker build -t chenqionghe/centos .

运行容器

docker run --name centos_ssh -p 2222:22 -it chenqionghe/centos  

 

使用ssh连接容器

 这里使用了2222端口来映射容器里的22端口,运行起来就可以使用ssh连接了,输出设置好的abcd1234密码,注意,这里用的是2222映射的端口  

?  ~ ssh root@127.0.0.1 -p 2222
root@127.0.0.1‘s password:
Last login: Tue Nov 20 04:10:17 2018 from 172.17.0.1
[root@a8c8e0fbd74f ~]# ls -l /
total 56
-rw-r--r--   1 root root 12030 Oct  6 19:15 anaconda-post.log
lrwxrwxrwx   1 root root     7 Oct  6 19:14 bin -> usr/bin
drwxr-xr-x   5 root root   360 Nov 20 04:09 dev
drwxr-xr-x  54 root root  4096 Nov 20 04:09 etc
drwxr-xr-x   2 root root  4096 Apr 11  2018 home
lrwxrwxrwx   1 root root     7 Oct  6 19:14 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Oct  6 19:14 lib64 -> usr/lib64
drwxr-xr-x   2 root root  4096 Apr 11  2018 media
drwxr-xr-x   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 223 root root     0 Nov 20 04:09 proc

就这么简单,hight起来吧,yeah buddy light weight baby! 

docker容器开启sshd

标签:ssh -p 22   root密码   std   etc   ssh   nss   直接   dev   设置   

原文地址:https://www.cnblogs.com/chenqionghe/p/9988566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!