问题:公司有一台闭置的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的同学玩玩

转载于:https://www.cnblogs.com/modestmt/p/5382853.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐