Oracle VirtualBox (Machine)
Oracle VirtualBox
使用虚拟盒此驱动程序要求在主机上安装VirtualBox 5+。使用VirtualBox 4.3+应该有效,但会给您一个警告。旧版本将拒绝工作。
使用
$ docker-machine create --driver=virtualbox vbox-test
您可以创建一台全新的机器,也可以通过导入VM将Boot2DockerVM转换为机器。要转换Boot2DockerVM,可以使用以下命令:
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d
VM磁盘的大小可以这样配置:
$ docker-machine create -d virtualbox --virtualbox-disk-size "100000" large
备选方案
--virtualbox-memory
主机的内存大小(以MB为单位)。
--virtualbox-cpu-count
用于创建VM的CPU数量。默认为单CPU。
--virtualbox-disk-size
主机的磁盘大小(以MB为单位)。
--virtualbox-host-dns-resolver
:使用主机DNS解析器。(布尔值,默认为false)
--virtualbox-boot2docker-url
引导boot2docker映像的URL。默认为最新可用版本。
--virtualbox-import-boot2docker-vm
要导入的Boot2DockerVM的名称。
--virtualbox-hostonly-cidr
主机唯一适配器的CIDR。
--virtualbox-hostonly-nictype
:仅宿主网络适配器类型。可能的值是‘82540 EM’(Intel pro/1000),‘Am79C973’(PCnet-FAST III),和‘virtio’准虚拟化网络适配器。
--virtualbox-hostonly-nicpromisc
:仅宿主网络适配器混杂模式。可能的选项是deny , allow-vms, allow-all
--virtualbox-no-share
:禁用主目录的挂载
--virtualbox-no-dns-proxy
:禁用将所有DNS请求代理到主机(布尔值,默认为false)
--virtualbox-no-vtx-check
:在VM启动前禁用硬件虚拟化可用性检查
--virtualbox-share-folder
:挂载指定的目录,而不是默认的主位置。格式:dir:name
大--virtualbox-boot2docker-url
旗子有几种不同的形式。默认情况下,如果未为此标志指定值,Machine将在本地检查boot2docker ISO。如果找到了一个,那么它将被用作所创建的计算机的ISO。如果找不到,最新的ISO版本可在boot2docker/boot2docker
将在本地下载和存储,以供将来使用。请注意,这意味着您必须运行docker-machine upgrade
如果您想要更新“缓存”的boot2docker ISO。
这是默认行为(当--virtualbox-boot2docker-url=""
),但该选项还支持http://
和file://
协议。file://
将查看本地指定的路径以定位ISO:例如,可以指定--virtualbox-boot2docker-url file://$HOME/Downloads/rc.iso
测试已下载的发布候选ISO。您也可以直接从Internet上获得ISO,使用http://
形式。
若要自定义仅宿主适配器,可以使用--virtualbox-hostonly-cidr
旗子。这将指定主机IP,机器将计算VirtualBox DHCP服务器地址(在子网.1
和.25
之间的任意一个IP)这样它就不会与指定的主机IP冲突。机器还将指定DHCP下限为.100
上界.254
.例如,指定的CIDR192.168.24.1/24
将有一个DHCP服务器在192.168.24.2-25
,下界192.168.24.100
和上界192.168.24.254
.
环境变量和默认值
CLI 选项 | 环境变量 | 默认值 |
---|---|---|
--virtualbox-memory | VIRTUALBOX_MEMORY_SIZE | 1024 |
--virtualbox-cpu-count | VIRTUALBOX_CPU_COUNT | 1 |
--virtualbox-disk-size | VIRTUALBOX_DISK_SIZE | 20000 |
--virtualbox-host-dns-resolver | VIRTUALBOX_HOST_DNS_RESOLVER | false |
--virtualbox-boot2docker-url | VIRTUALBOX_BOOT2DOCKER_URL | Latest boot2docker url |
--virtualbox-import-boot2docker-vm | VIRTUALBOX_BOOT2DOCKER_IMPORT_VM | boot2docker-vm |
--virtualbox-hostonly-cidr | VIRTUALBOX_HOSTONLY_CIDR | 192.168.99.1/24 |
--virtualbox-hostonly-nictype | VIRTUALBOX_HOSTONLY_NIC_TYPE | 82540EM |
--virtualbox-hostonly-nicpromisc | VIRTUALBOX_HOSTONLY_NIC_PROMISC | deny |
--virtualbox-no-share | VIRTUALBOX_NO_SHARE | false |
--virtualbox-no-dns-proxy | VIRTUALBOX_NO_DNS_PROXY | false |
--virtualbox-no-vtx-check | VIRTUALBOX_NO_VTX_CHECK | false |
--virtualbox-share-folder | VIRTUALBOX_SHARE_FOLDER | ~:users |
已知问题
Vboxfs遭受持续的问题致因发送文件(2)为缓存的文件内容提供服务。
当使用诸如nginx之类的web服务器来从共享卷提供静态文件时,这通常会导致问题。对于开发环境,一个很好的解决方法是在服务器配置中禁用sendfile。