在线文档教程
Docker 17
机器 | Machine

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-memoryVIRTUALBOX_MEMORY_SIZE1024
--virtualbox-cpu-countVIRTUALBOX_CPU_COUNT1
--virtualbox-disk-sizeVIRTUALBOX_DISK_SIZE20000
--virtualbox-host-dns-resolverVIRTUALBOX_HOST_DNS_RESOLVERfalse
--virtualbox-boot2docker-urlVIRTUALBOX_BOOT2DOCKER_URLLatest boot2docker url
--virtualbox-import-boot2docker-vmVIRTUALBOX_BOOT2DOCKER_IMPORT_VMboot2docker-vm
--virtualbox-hostonly-cidrVIRTUALBOX_HOSTONLY_CIDR192.168.99.1/24
--virtualbox-hostonly-nictypeVIRTUALBOX_HOSTONLY_NIC_TYPE82540EM
--virtualbox-hostonly-nicpromiscVIRTUALBOX_HOSTONLY_NIC_PROMISCdeny
--virtualbox-no-shareVIRTUALBOX_NO_SHAREfalse
--virtualbox-no-dns-proxyVIRTUALBOX_NO_DNS_PROXYfalse
--virtualbox-no-vtx-checkVIRTUALBOX_NO_VTX_CHECKfalse
--virtualbox-share-folderVIRTUALBOX_SHARE_FOLDER~:users

已知问题

Vboxfs遭受持续的问题致因发送文件(2)为缓存的文件内容提供服务。

当使用诸如nginx之类的web服务器来从共享卷提供静态文件时,这通常会导致问题。对于开发环境,一个很好的解决方法是在服务器配置中禁用sendfile。

机器甲骨文虚拟盒驱动程序