​使用 Moby 构建 Docker for Mac 17.06 社区版

​使用 Moby 构建 Docker for Mac 17.06 社区版


出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


Docker For Mac 17.06 社区版是第一个完全建立在 Moby 项目上的 Docker 版本。Moby 是 Docker 公司推出的一个开放框架,用于建立专门的容器系统。它包含 3 个基本元素:容器化的后端组件库(例如,底层构建器,日志记录设施、卷管理、网络、镜像管理、容器化、SwarmKit);将组件组装成独立容器平台的框架,以及用于构建、测试和部署这些组件的工件的工具,以及称为 Moby Origin 的参考组件,这是 Docker 容器平台的开放式基础,以及使用来自 Moby 库或其他项目的各种组件组成的容器系统示例。

​使用 Moby 构建 Docker for Mac 17.06 社区版


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

Docker for Mac 是 Docker 社区版 (CE) 的一个应用,目的是让开发人员在 OSX 上体验现有的工作流。Docker for Mac 安装包包含了在Mac 上运行Docker 所需的一切程序。下面是一些特别引人关注的功能:


  • 只需拖放即可完成安装,并自动更新以获取最新的 Docker;

  • 安全、沙盒化的虚拟化架构,没有提升的特权;

  • 原生网络支持,具有 v*n 和网络共享兼容性;

  • 容器和主机之间的文件共享,UID 映射、inotify 事件等;

​使用 Moby 构建 Docker for Mac 17.06 社区版


Docker for Mac 的核心构建块包括:


  • 虚拟化;


​使用 Moby 构建 Docker for Mac 17.06 社区版


  • 网络;


​使用 Moby 构建 Docker for Mac 17.06 社区版

  • 文件系统;


​使用 Moby 构建 Docker for Mac 17.06 社区版

​使用 Moby 构建 Docker for Mac 17.06 社区版


一些值得注意的组件包括:


  • HyperKit,此工具包用于在应用中嵌入hypervisor 功能;

  • DataKit,此工具用于编排使用9P 数据流的应用;

  • v*nKit,一组工具和服务,帮助HyperKit 虚拟机与主机v*n 配置互操作;

 

如果您想了解有关这些组件的详细信息,请阅读相关的文档指南(https://docs.docker.com/docker-for-mac/)。

​使用 Moby 构建 Docker for Mac 17.06 社区版


LinuxKit 目前支持多个云平台,例如 AWS、谷歌云平台、 Microsoft Azure、VMware 等。在本地 hypervisor 方面,它支持 HyperKit、VMware、KVM 和 Microsoft Hyper-V。


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

如果您密切关注 LinuxKit 存储库,会发现引入了一个名为 blueprint 的新目录,其中将包含 LinuxKit 所支持的平台上作为基础系统的 blueprint。这些囊括了Docker 各版本做覆盖的所有平台,以及Docker 社区所支持的所有平台。所有的初始测试工作将在examples/ 目录下进行,然后推送到 blueprints 目录,如图所示:


​使用 Moby 构建 Docker for Mac 17.06 社区版

​使用 Moby 构建 Docker for Mac 17.06 社区版


目前,在 blueprint/ 目录下包含 Docker For Mac 17.06 CE 的基本文件:


  • base.yml => 其中包含 Docker for Mac 的开源组件;

  • docker-17.06.ce.yml => 构建虚拟机镜像做必需的YAML 文件;

​使用 Moby 构建 Docker for Mac 17.06 社区版


该 blueprint 支持通过 vsudd 控制从主机访问容器,以及通过 v*nKit 进行端口转发。它需要在主机上运行 HyperKit、v*nKit 和一个 Docker 客户端。


​使用 Moby 构建 Docker for Mac 17.06 社区版


文件: docker-17.06-ce.yml


​使用 Moby 构建 Docker for Mac 17.06 社区版


通过以下 YAML 代码启用 v*nKIT:


​使用 Moby 构建 Docker for Mac 17.06 社区版


文件: base.yml


​使用 Moby 构建 Docker for Mac 17.06 社区版


使用 Moby 工具和 Docker 17.06 进行构建:


$ moby build -name docker4mac base.yml docker-17.06-ce.yml


​使用 Moby 构建 Docker for Mac 17.06 社区版


这将在 docker4mac-state 目录下生成一些文件,如下图所示:


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

接下来,我们现在可以运行LinuxKit 命令来运行带有1024M磁盘的虚拟机:


$ linuxkit run hyperkit -networking=v*nkit -vsock-ports=2376 -disk size=1024M docker4mac

 

现在,您应该能够看到虚拟机docker4mac 顺利启动:


​使用 Moby 构建 Docker for Mac 17.06 社区版


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

您可以打开一个新的终端来查看整体的目录/文件树结构:


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

让我们尝试使用 ctr list 命令列出服务容器。应该显示 Docker For Mac 17.06 服务容器,如下所示:


​使用 Moby 构建 Docker for Mac 17.06 社区版

 

您可以使用 $ ctr exec -t docker-dfm sh 命令轻松地进入服务容器:


​使用 Moby 构建 Docker for Mac 17.06 社区版


​使用 Moby 构建 Docker for Mac 17.06 社区版


点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

 ​使用 Moby 构建 Docker for Mac 17.06 社区版