在开发环境使用docker已经有一段时间,虽然也遇到一些问题,但是总体来说对非常值得使用,大大简化了开发环境的建立和复制, 最近发现Docker发布了针对windows10和Mac的官方封装版本普大喜奔,终于不用boot2docker了,你要知道boot2docker是基于virtualbox的,virtualbox自己在我机器上崩溃了好多回,每次都得像大爷一样伺候着,祈祷它老人家长命百岁.............这次发布的官方版Docker for windows 10 是基于稳定的Hyper V 运行的一个linux vm 再来运行docker的,对外也提供了docker 命令的封装,用到了一个多月下来感觉是很稳定的,这里介绍两个在Docker for windows10上必须知道的操作。
下面是安装 Docker 客户端并在上面运行容器的简单步骤。1. 下载 Boot2Docker。
在我们开始安装之前,我们需要 Boot2Docker 的可执行文件。可以从 它的 Github 下载最新版本的 Boot2Docker。在这篇指南中,我们从网站中下载版本 v1.6.1。我们从那网页中用我们喜欢的浏览器或者下载管理器下载了名为 docker-install.exe 的文件。
2. 安装 Boot2Docker。
现在我们运行安装文件,它会安装 Window Docker 客户端、用于 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,这些对于开箱即用地运行全功能的 Docker 引擎都至关重要。
3. 运行 Boot2Docker。
安装完成必要的组件之后,我们从桌面上的“Boot2Docker Start”快捷方式启动 Boot2Docker。它会要求你输入以后用于验证的 SSH 密钥。然后会启动一个配置好的用于管理在虚拟机中运行的 Docker 的 unix shell。
为了检查是否正确配置,运行下面的 docker version 命令。
docker version
windows上跑windows容器,的确有点cool,再加上windows也能跑原生linux了,也许将来就是windows docker能跑windows和linux,linux docker只能跑linux。
不过我倒觉得如果这项技术可以给home版本之类的用户开发,那就更cool了,也许可以通过它提供一个升级的安全解决方案,把程序装进沙箱里,想像一下以后安装软件有“安装到隔离容器”的选项,在提供文件系统和网络安全性的情况下,能完全使用CPU、显卡等硬件能力,运行就启动、结束就退出,也不会有后台进程驻留内存之类的。
Docker和VM的最大区别就是,一个是操作系级虚拟化,一个是硬件级虚拟化。因此, Docker本身就是可以运行在VM之上的。不能说在windows上装个虚拟机,然后再运行一个Docker,就说docker支持windows吧。为了让docker能在VM上运行,docker专门开发了Docker Toolbox和docker-machine,其核心都是通过虚拟机来运行docker,只不过是帮用户简化了中间的部署和配置流程。针对本次的Beta发布,更多的是优化的工作。笔者也提交了试用申请,然后进入了长长的waiting-list,不过我猜测,这次的版本改进主要体现在以下几个方面:通过使用轻量级的linux发行版本,使VM更小,部署和安装更快。Alpine linux是一个非常轻量级的发型版,而且docker也有计划让alpine作为默认的基础镜像。
原生工具集支持。以前我们在非linux下运行时,都需要借助于类似MINGW的工具,模拟一下Shell。而这次Beta的退出,在这方面肯定是加强了,支持了原生态的命令。
更好的网络支持。可能会将Docker的网络系统集成到Mac和Windows的原生网络系统中,方便用户配置。
更好的对系统沙盒的适配。OS X和Windows本身都是支持沙盒的,可能在这方面会有所加强。
那么为什么原生态的windows和mac那么难支持呢?这必须从docker的基本原理说起:
CGroup技术,这是用来控制CPU、内存、网络等资源限制的,这需要内核的支持,而目前只有linux的支持比较好。
docker新版支持在64位的Windows上运行,要求开启hyper-V(如果你装有VMware虚拟机程序,这会导致hyper-V和VMware冲突而无法运行docker项目)。如果你指的是在docker里面运行Windows系统?docker不等于完整的虚拟机,docker里面的程序运行都依赖于主系统,应该没有这样的docker镜像,你可以去找找。
原文地址:http://www.qianchusai.com/windows%E4%B8%8B%E7%9A%84docker%E6%B2%A1%E6%84%8F%E4%B9%89.html