LinuxKit 使用
OS:macOS
GitHub:https://github.com/linuxkit/linuxkit
修订记录
- 2017/12/02: 官方开始支持
VirtualBox
- 2017/11/21: 不再需要
moby
准备
此处以 macOS
下安装为例,其他系统请在 Go
环境下编译命令。
GitHub:https://github.com/linuxkit/homebrew-linuxkit
$ brew tap linuxkit/linuxkit
$ brew install --HEAD linuxkit
# 下面的不是必须安装,我目前还不清楚它的作用
$ brew install --HEAD rtf
$ brew install --HEAD manifest-tool
这一步会安装好 linuxkit
命令。
工具升级
$ brew reinstall --HEAD linuxkit
运行官方示例
支持以下平台:
- HyperKit (macOS)
- Hyper-V (Windows)
- qemu (macOS, Linux, Windows)
- VMware (macOS, Windows)
云平台不再列举。
克隆源代码
$ git clone --depth=1 git@github.com:linuxkit/linuxkit.git
$ cd linuxkit
使用 VirtualBox
官方文档:https://github.com/linuxkit/linuxkit/blob/master/docs/platform-vbox.md
先以虚拟机方式启动,便于大家理解。
$ linuxkit build -format iso-efi linuxkit.yml
-format
参数指定输出格式,使用 linuxkit build --help
查看更多信息。
这样就生成了一个名为 linuxkit-efi.iso
的 ISO 文件。
使用 VirtualBox
挂载 ISO,勾选 启用EFI
并设置好网络后启动。浏览器访问虚拟机的 IP,即可看到 Nginx 默认页面。
或者使用命令运行。
$ linuxkit run vbox --uefi linuxkit-efi.iso
打开 VirtualBox
,可以看到启动的虚拟机,在网络高级配置中,配置端口转发(例如 8080
),浏览器访问 宿主机IP:8080
即可看到 Nginx 默认页面。
执行 linuxkit run vbox --help
查看更多配置参数。
使用 HyperKit
官方文档:https://github.com/linuxkit/linuxkit/blob/master/docs/platform-hyperkit.md
HyperKit
是 macOS
上运行的轻量级虚拟化工具包。构建、运行命令如下
$ linuxkit build linuxkit.yml
$ linuxkit run -publish 8080:80/tcp linuxkit
这里将 LinuxKit
中的 80
端口映射到了 macOS
的 8080
端口,现在打开 127.0.0.1:8080
,即可看到 Nginx 默认页面。
还有一种方法是使用 Docker for Mac
启动一个容器,在容器中可以连接到 LinuxKit
启动的系统。
连接到容器的方法:https://github.com/linuxkit/linuxkit/blob/master/docs/platform-hyperkit.md#networking
执行 linuxkit run hyperkit --help
查看更多配置参数。
注意:使用该驱动,LinuxKit 中的服务会继承 macOS 中
/etc/hosts
的配置。如果想要自定义hosts
可以挂载配置文件。
macOS xhyve 虚拟引擎
你查看的旧教程可能以 xhyve
为例讲解 Linuxkit
。
不过目前官方已经删去对其的支持。我实际测试启动不起来,这里不再赘述。
关闭
执行 halt
关闭 LinuxKit
启动的系统。
自定义
运行 linuxkit help
查看更多使用方法。
参考示例 linuxkit.yml
编写自定义的 name.yml
,然后构建、运行。
请参考 example 文件夹下的官方示例。
参考链接
- http://blog.csdn.net/shenshouer/article/details/70251109
- https://www.v2ex.com/t/359038
- https://github.com/moby/tool/blob/master/docs/yaml.md
- https://zhuanlan.zhihu.com/p/26997981
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何在Chrome调试器里检查嵌套Observable对象
- Angular 指令ngTemplateOutlet的运行原理单步调试
- 跳出源码地狱,Spring巧用三级缓存解决循环依赖-原理篇
- Angular NgTemplateOutlet的一个例子
- 手把手教你自制基于TencentOS Tiny的智能甲醛监测仪
- ASP.NET Core 使用 AutoFac 注入 DbContext
- Python爬虫练习:爬取800多所大学学校排名、星级等
- Python爬取股票信息,并实现可视化数据
- Python爬虫练习:爬取素材网站数据
- 25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在
- 十一假期快到了,不知道该去哪玩?爬取旅游攻略
- 干掉Navicat:正版 MySQL 官方客户端真香!
- WordPress评论插件wpDiscuz任意文件上传复现
- 干货 | 性能提升400%,ClickHouse在携程酒店数仓的实践
- 干货 | 携程如何基于ARIMA时序分析做业务量的预测