设为首页 收藏本站
查看: 1114|回复: 0

[经验分享] Mac OSX 下的Docker安装与sshd安装

[复制链接]
发表于 2015-10-13 11:11:14 | 显示全部楼层 |阅读模式
  1、docker安装与入门请参看Mac OSX Docker安装
  2、安装后我们进行一些命令的熟悉,然后进入到主题sshd安装及产生的一些问题。
  



#拉取docker image
docker pull docker.cn/docker/ubuntu#这里我们使用的是国内的镜像,国外的比较慢<pre name=&quot;code&quot; class=&quot;plain&quot;>#执行docker images 查看拉取到的镜像



docker@boot2docker:~$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tutorial                  latest              e1cf806fdfab        23 minutes ago      286.7 MB
sshd                      latest              d1dfdb7229bd        14 hours ago        287.8 MB
<none>                    <none>              85e8e040f166        14 hours ago        287.8 MB
docker.cn/docker/ubuntu   trusty              b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   14.04               b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   14.04.1             b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   latest              b39b81afc8ca        13 days ago         192.7 MBdocker@boot2docker:~$ docker run -it docker.cn/docker/ubuntu /bin/bash
  root@a9dd8a7d033b:/# apt-get install -y openssh-server                                   
  #到这里更新完毕
#我们安装sshd-server



root@a9dd8a7d033b:/# apt-get install -y openssh-server
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
....
Updating certificates in /etc/ssl/certs... 164 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
Processing triggers for ureadahead (0.100.0-16) ...


  
#完成安装
#我们尝试在本地启动一个ssh服务



root@a9dd8a7d033b:/# /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd                          [ OK ]


  
#这里服务启动成功了,我们验证一下



root@a9dd8a7d033b:/# ps -ef | grep sshd
root      3280     1  0 03:06 ?        00:00:00 /usr/sbin/sshd
root      3284     1  0 03:07 ?        00:00:00 grep --color=autosshd


  
#通常大家看到成功后就会很自然的想到我要登录进去看看,但是这是登陆不进去的,因为还有一些sshd_config我们还没有更改,会提示以下内容



Permission denied (publickey,password).


  

#首先我们要设置一下密码


root@a9dd8a7d033b:/# passwd
Enter new UNIX password:

#修改之前我们下载一个vim,方便编辑,vi不是很顺手,个人习惯  


root@a9dd8a7d033b:/# apt-get install -y vim

#然后修改sshd_config的配置  



RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
PasswordAuthentication yes


  
#创建一个用户名为admin的用户,设置密码,这个地方这么做的原因是因为sshd不推荐使用root登录,因为那样是不安全,所以我们还是创建一个用户,更改配置也可以使root可以登录



root@a9dd8a7d033b:/# adduser admin


  

#修改完成后不要忘记重新启动ssh


root@a9dd8a7d033b:/# /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd                        [ OK ]


  
#我们使用admin用户登录到ssh



root@a9dd8a7d033b:/# ssh admin@127.0.0.1
admin@127.0.0.1's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.16.7-tinycore64 x86_64)
* Documentation:  https://help.ubuntu.com/
Last login: Fri Jan 30 03:32:54 2015 from localhost
To run a command as administrator (user &quot;root&quot;), use &quot;sudo <command>&quot;.
See &quot;man sudo_root&quot; for details.
admin@a9dd8a7d033b:~$


  

#可以看到我们正确登录,但是这才刚刚开始,因为本文的重点在下面,这时我们肯定不满足于这样的登录方式,一个root下登录ssh,这显然没有人这么玩,真正的是启动一个sshd服务,然后我们通过外部登录到这台服务器进行操作。
#我们退出到docker



root@a9dd8a7d033b:/# exit
exit
docker@boot2docker:~$


  

#现在我们需要将我们刚才的操作进行保存



docker@boot2docker:~$ docker ps -l
CONTAINER ID        IMAGE                           COMMAND             CREATED             STATUS                          PORTS               NAMES
a9dd8a7d033b        docker.cn/docker/ubuntu:14.04   &quot;/bin/bash&quot;         45 minutes ago      Exited (0) About a minute ago
docker@boot2docker:~$ docker commit a9dd8a7d033b tutorial
e1cf806fdfab6af52b8c4a17d8ef8bca9505333a2134b27b2dbd48b952270f7a


  

#我们已经把刚才的镜像进行了保存


docker@boot2docker:~$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tutorial                  latest              e1cf806fdfab        33 seconds ago      286.7 MB
sshd                      latest              d1dfdb7229bd        14 hours ago        287.8 MB
<none>                    <none>              85e8e040f166        14 hours ago        287.8 MB
docker.cn/docker/ubuntu   14.04               b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   14.04.1             b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   latest              b39b81afc8ca        13 days ago         192.7 MB
docker.cn/docker/ubuntu   trusty              b39b81afc8ca        13 days ago         192.7 MB


  
#通过上面我们可以明显看到一个名为tutorial的镜像
#我们执行这个镜像,通过一个守护进程的方式



docker@boot2docker:~$ docker run -d -p 22 tutorial /usr/sbin/sshd -D
aa6ab07a0618d79b075049b7556d1c299017e7fca356c275aa1a61c08354ec50


  
#查看绑定的端口号



docker@boot2docker:~$ docker port aa6ab07a0618d79b075049b7556d1c299017e7fca356c275aa1a61c08354ec50
22/tcp -> 0.0.0.0:49161


  

#通过ssh登录到这台服务器



docker@boot2docker:~$ ssh admin@127.0.0.1 -p 49161
The authenticity of host '[127.0.0.1]:49161 ([127.0.0.1]:49161)' can't be established.
ECDSA key fingerprint is 15:42:48:f6:b4:dc:68:73:fa:5e:da:94:11:56:25:a9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:49161' (ECDSA) to the list of known hosts.
admin@127.0.0.1's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.16.7-tinycore64 x86_64)
* Documentation:  https://help.ubuntu.com/
Last login: Fri Jan 30 03:37:56 2015 from localhost
To run a command as administrator (user &quot;root&quot;), use &quot;sudo <command>&quot;.
See &quot;man sudo_root&quot; for details.
admin@aa6ab07a0618:~$


  
  #登录成功了,这里我们可以看到容器的22端口其实做了一个网络地址转换至docker下的49161端口,所以我们在登录的时候就要使用49161,同时这也引出了一个拓扑结构图来阐述这一过程
DSC0000.jpg





PS:我在学习的过程中犯了一个概念性的错误,就是我错误的认为mac terminal 和 docker 在同一个层级上,我就通过terminal直接ssh到container,这当然是无法连接成功的,所以请大家注意这个问题,至于怎么才能连接我会在下一篇文章说明这个事情。




版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126213-1-1.html 上篇帖子: Docker — 云时代的程序分发方式 下篇帖子: SELinux的Docker安全性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表