我非常高兴在一月的时候成为Docker for Mac的第一批外部用户,当时它还是alpha版。
Docker Toolbox是一个很大的进步,在这之前Docker的下载,安装和设置都需要分开完成;而且,我还要额外设置一些变动的地方。现在有了Docker for Mac,我只需要运行一个app然后一切OK,并且感觉好像Docker是直接地在Linux上运行一样。 再也不需要Virtual Box或者Docker Machine,简单地运行下Docker就能在Mac上跑起来,这感觉简直太好了。
这意味着我不再需要在每一个新的终端中确保有一个活跃的machine。另外,这意味着再也不用看到“Error response from daemon: client is newer than server”这个错误。
对于我来说最重要的是不再需要Virtual Box,因为在公司的VPN环境。在之前有Virtual Box的时候,我遇到了很多问题,而且都没有完全的解决掉。我不知道我浪费了多少时间尝试解决解决它,求助朋友或者在Stack Overflow上寻找答案。我一直想弄清楚我的问题是因为Docker还是Virtual Box。当时我对Docker和Virtual Box都还不熟悉。我无法让Docker正常运行起来(它总是报TCP超时的问题),除非我把所有流量通过127.0.0.1的转发并且覆盖我的 DOCKER_HOST
环境变量。但接下来,所有的静态网站又无法访问了。我看到了Chrome那悲剧的连接不成功页面。最后,我把所有的东西都清除,然后重启,一切又都正常了。成功了,现在所有都正常了,是吗?!
不,额,大多数时候是的。即使这样我还是经常会遇到TCP超时。我继续深入查找了下问题最后终于找到了解决方案。我需要删除并重新添加Virtual Box中docker-machine使用的为VM创建的网络接口:
sudo route -nv delete -net 192.168.99 -interface vboxnet2 sudo route -nv add -net 192.168.99 -interface vboxnet2
当Solomon (@solomonstre)告诉我它们正开发一些东西可以不需要Virtual Box就能在Mac上运行Docker,然后问我是不是要尝试一下时,我兴奋不极了。当然它们也警示我,这东西还在Alpha阶段。在我签署了NDA之后,它们发给我了 Docker.app
和文档。我关闭了Virtual Box,删除了所有的Docker Machine环境变量,但是Docker仍然在运行:
我们真诚的感谢你关于新的 @docker for Mac的反馈 @tiffanyfayj pic.twitter.com/uNVfxNql6g
@chanezon
在Docker办公室第一次运行这个app。
然而,正如预料的一样。一开始不是什么都很顺利,特别是在公司的网络/VPN环境上。一句话,Docker当时不能在VPN环境用。因为没人测试过。这让我成为了很好的测试用户,因为我经常在家里和公司/VPN环境之间切换。尽管前前后后和Michael Chiang (@mchiang0610) 以及其他的Docker的成员来回了不少邮件,最后终于能一致在各种环境一致地运行,这较之于Virtual Box是一个在网络上的进步。现在有了一个很方便的,实验性的特性可以激活VPN兼容模式,现在我可以轻松地在工作和在家运行它了。
你可以看到,我没有运行Virtual Box,但是Docker运行着(并且我开着VPN)。
它运行在Alpine Linux中的xhyve虚拟机上:
Beta版本的还有详细的文档帮助你使用Docker和怎么调试你可能遇到的问题:
另外有很多其他有用的特性用来调试应用如快速跳转到日志:
其他功能快去下载一个Beta版本尝试吧 ;)。
更多信息可以查看Patrick Chanezon’s (@chanezon) 日志 ,看3月30日的 webinar ,然后注册下载Beta版本。
( 原文链接: Say Hello to Docker for Mac )