揭发233的docker/machine

Posted on 2020-01-14 01:19  A.Z  阅读(501)  评论(2编辑  收藏  举报

手动滑稽之golang-vmware-driver广告篇,今天把vmware-driver完成

然而我却要发一篇牢骚,这是对docker公信力的挑战!!!

本来很简单的升级到vmware 15.x的兼容vmx文件简直是小菜一碟

顺着大便,把Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO) 下篇dockerの奥义提到的知识点1涂抹了一下

这样就达成了1986年toshiba洗衣机广告那样的全自动效应:

更新driver再也不用打开VMware workstation手动停止,更新配置了,效果异常的完美

在此基础之上,配套了ssh和dockerd port,这样我又可以让各位猜猜猜了

然而ssh port配合无间,dockerd port就...一言能尽,失败!

为什么失败先从怎么成功说起,一言能尽,减了一处hard code,加了3行GetSSHPort,内容从base.go来,d *BaseDriver好吧,这点legacy就别缴税了

错误性息就不贴了没头脑和不高兴,聚焦到流程后,我在git的源码处发现了

WaitForDocker() --> provision.WaitForDocker(provisioner, engine.DefaultPort)

如果进一步检索,甚至发现

dockerPort := engine.DefaultPort

 甚至又又探测出

utils_test.go dockerPort := 1234

为了颠覆印象,又找到了

GenerateDockerOptions(dockerPort int ..

.{ ...

DOCKER_HOST='-H tcp://0.0.0.0:{{.DockerPort}}'

... engineConfigContext := EngineConfigContext{

DockerPort:    dockerPort, ......

 

}

最后诧异的联想machine/drivers/azure/util.go

 // getSecurityRules creates network security group rules based on driver
// configuration such as SSH port, docker port and swarm port.

 // Base ports to be opened for any machine
 rl := []network.SecurityRule{
  mkRule(100, "SSHAllowAny", "Allow ssh from public Internet", "*", fmt.Sprintf("%d", d.BaseDriver.SSHPort), network.TCP),
  mkRule(300, "DockerAllowAny", "Allow docker engine access (TLS-protected)", "*", fmt.Sprintf("%d", d.DockerPort), network.TCP),
 }

 

 好吧,最终的觉悟是,对改动docker/machine我是想说NO的

machine/libmachine/provision/ 绝大多数文件的日期都是在2年前,或者4年前

至今,仍旧保持着最初的风貌,而我的新光盘和new driver配合非常默契,当然少了自定义的docker port也无所谓,至少我确认了所有的远景都在预期内

至多,不少一个port

全篇无图,希望能用心灵和文字的力量感受到视觉上新光盘和new driver的抽象

以上233的docker/machine揭发完毕

请轻声鼓掌

 

OVER.