问题:公司有一台闭置的windows服务器,于是想利用起来,但是在启动容器后始终无法通信成功。
研究:
1. 发现安装包中包含virtualbox, 于是怀疑windows下的docker是在virtualbox中run了一个DOCKER虚拟机(额外思考一下,你自己构建的容器运行在virtualbox的docker里,跟linux下直接运行在docker里是否多了一层?性能是否会有损失?)
2. 启动virtualbox, 果然有个新建并且在运行的虚拟机
3. 尝试修改:在虚拟网卡中添加转发
注意被我抹掉的主机IP部分,如果你只想要本机访问填127.0.0.1可以,如果是有外网地址则需要绑定到外网的网卡上,不然外网访问不能通。
4. 启动容器:docker run -i -t -p -d 49223:22 mycentos /bin/bash
5. 在外面使用SSH访问容器成功
总结分析下产生这个问题的原因:如上图我们看到有个49226对22的映射,这个是在装docker on windows时自动加上的。因此证实我上面的猜测,docker on windows其实是一个run在virtualbox上的虚拟机,通过ssh自动登录进行操作。那么是否会有性能损失,而且virtualbox的稳定性能否支撑得住商业业务呢?当然类似, 我们可以在hype-v上建一个centos装好docker,开放ssh到外面操作,但是只在服务器是windows下而且“领导”不愿意或是不能转成linux的情况下这么使用~~~
供只想在windows尝试一下docker的同学玩玩
所有评论(0)