甲骨文VirtualBox

预计阅读时间:5分钟

使用VirtualBox在本地创建计算机。该驱动程序需要在主机上安装VirtualBox 5+。使用VirtualBox 4.3+应该可以,但是会发出警告。较旧的版本不起作用。

用法

$ docker-machine create --driver=virtualbox vbox-test

您可以创建全新的计算机,也可以通过导入VM将Boot2Docker VM转换为计算机。要转换Boot2Docker VM,请使用以下命令:

$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d

可以通过以下方式配置VM磁盘的大小:

$ docker-machine create -d virtualbox --virtualbox-disk-size "100000" large

选项

  • --virtualbox-boot2docker-url:boot2docker映像的URL。默认为最新的可用版本。
  • --virtualbox-cpu-count:用于创建VM的CPU数量。默认为单CPU。
  • --virtualbox-disk-size:主机的磁盘大小,以MB为单位。
  • --virtualbox-host-dns-resolver:使用主机DNS解析器。(布尔值,默认为false)
  • --virtualbox-hostonly-cidr:仅主机适配器的CIDR。
  • --virtualbox-hostonly-nicpromisc:仅主机网络适配器混杂模式。可能的选项是deny,allow-vms,allow-all
  • --virtualbox-hostonly-nictype:仅主机网络适配器类型。可能的值为'82540EM'(Intel PRO / 1000),'Am79C973'(PCnet-FAST III)和'virtio'半虚拟化网络适配器。
  • --virtualbox-hostonly-no-dhcp:禁用仅主机DHCP服务器
  • --virtualbox-import-boot2docker-vm:要导入的Boot2Docker VM的名称。
  • --virtualbox-memory:主机的内存大小,以MB为单位。
  • --virtualbox-nat-nictype:指定NAT网络适配器类型。可能的值为'82540EM'(Intel PRO / 1000),'Am79C973'(PCnet-FAST III)和'virtio'半虚拟化网络适配器。
  • --virtualbox-no-dns-proxy:禁用将所有DNS请求代理到主机(布尔值,默认为false)
  • --virtualbox-no-share:禁用主目录的挂载
  • --virtualbox-no-vtx-check:在启动虚拟机之前,禁用检查硬件虚拟化的可用性
  • --virtualbox-share-folder:挂载指定目录而不是默认主目录。
  • --virtualbox-ui-type:指定用户界面类型:(gui sdl 无头 分离)

--virtualbox-boot2docker-url标志采用几种不同的形式。默认情况下,如果没有为此标志指定值,则Machine会在本地检查boot2docker ISO。如果找到一个,则用作创建的计算机的ISO。如果未找到,则会下载boot2docker / boot2docker上可用的最新ISO版本, 并将其存储在本地以供将来使用。因此,docker-machine upgrade如果要更新“缓存的” boot2docker ISO ,则必须在计算机上有意运行 。

这是默认行为(when --virtualbox-boot2docker-url=""),但是该选项还支持通过http://file://协议指定ISO 。 file://查看本地指定的路径以找到ISO:例如,您可以指定--virtualbox-boot2docker-url file://$HOME/Downloads/rc.iso测试已经下载的发行候选ISO。您也可以使用http://表格直接从Internet获得ISO 。

要自定义仅主机适配器,可以使用该--virtualbox-hostonly-cidr 标志。这将指定主机IP,并且计算机将计算VirtualBox DHCP服务器地址(介于.1和之间的子网上的随机IP .25),因此它不会与指定的主机IP冲突。机器指定DHCP的下限.100和上限.254。例如,指定的CIDR192.168.24.1/24将在192.168.24.2-25的下限192.168.24.100和的上限之间具有DHCP服务器192.168.24.254

使用标记--virtualbox-share-folder,您可以指定主机与创建的计算机共享的文件夹。格式为local-folder:machine-folder。例如,\\?\C:\docker-share:\home\users\。如果从Windows cmd使用docker-machine在docker-toolbox中指定该标志,则其外观类似于 C:\docker-share\\:/home/users。该:标志需要逃脱。

环境变量和默认值

CLI选项 环境变量 默认
--virtualbox-boot2docker-url VIRTUALBOX_BOOT2DOCKER_URL 最新的boot2docker URL
--virtualbox-cpu-count VIRTUALBOX_CPU_COUNT 1
--virtualbox-disk-size VIRTUALBOX_DISK_SIZE 20000
--virtualbox-host-dns-resolver VIRTUALBOX_HOST_DNS_RESOLVER false
--virtualbox-hostonly-cidr VIRTUALBOX_HOSTONLY_CIDR 192.168.99.1/24
--virtualbox-hostonly-nicpromisc VIRTUALBOX_HOSTONLY_NIC_PROMISC deny
--virtualbox-hostonly-nictype VIRTUALBOX_HOSTONLY_NIC_TYPE 82540EM
--virtualbox-hostonly-no-dhcp VIRTUALBOX_HOSTONLY_NO_DHCP false
--virtualbox-import-boot2docker-vm VIRTUALBOX_BOOT2DOCKER_IMPORT_VM boot2docker-vm
--virtualbox-memory VIRTUALBOX_MEMORY_SIZE 1024
--virtualbox-nat-nictype VIRTUALBOX_NAT_NICTYPE 82540EM
--virtualbox-no-dns-proxy VIRTUALBOX_NO_DNS_PROXY false
--virtualbox-no-share VIRTUALBOX_NO_SHARE false
--virtualbox-no-vtx-check VIRTUALBOX_NO_VTX_CHECK false
--virtualbox-share-folder VIRTUALBOX_SHARE_FOLDER --
--virtualbox-ui-type VIRTUALBOX_UI_TYPE headless

已知的问题

Vboxfs遭受了一个长期的错误,该错误 导致sendfile(2)提供缓存的文件内容。

使用Web服务器(例如Nginx)从共享卷提供静态文件时,这会导致问题。对于开发环境,一个好的解决方法是在服务器配置中禁用sendfile。

。计算机Oracle VirtualBox驱动程序;