VBoxManage (LockMachine): Docker 厨师创建的机器

VBoxManage (LockMachine): Docker machine created by chef

我想用 Chef 为 Docker 创建默认机器。

我正在使用命令:

docker-machine create --driver=virtualbox --virtualbox-host-dns-resolver=true default

我的问题是,当我 运行 它在 Chef 中时(使用 execute 资源,但我也尝试过 batchpowershell_script)它 运行 非常好(机器添加到 Docker 中),但它在 VBox 中不起作用(甚至没有创建机器)。

docker-machine ls -t 20
NAME      ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
default   -        virtualbox   Stopped                 Unknown

docker-machine start
Starting "default"...
(default) Check network to re-create if needed...
Error setting up host only network on machine start: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe modifyvm default --nic2 hostonly --nictype2 8240EM --nicpromisc2 deny --hostonlyadapter2 VirtualBox Host-Only Ethernet Adapter --cableconnected2 on failed:
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended info not available)
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Write)" at line 507 of file VBoxManageModifyVM.cpp

现在我不能删除这台机器,因为有三个VBoxHeadless.exeVBoxNetDHCP.exe进程。

奇怪的是,我在 cmd 中使用相同的命令 运行 并且机器处于启动状态:

docker-machine ls -t 20
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v17.05.0-ce

有什么区别...?为什么它在 Chef 下不起作用?

好的,我知道了,问题是什么。

我 运行宁 Chef 作为管理员并且有其他控制台具有普通用户权限。

主要问题是,当 运行ning docker-machine 具有管理员权限时,出现问题,它不是为用户创建的,而是为管理员创建的(即使在 Linux 系统上也存在问题- 我已经检查过了)。

要解决这个问题,应该 运行 这个 execute 没有管理员权限的资源 - 我真的不知道如何在 Chef 中做到这一点,但这是一个全新的问题问。