Chu*_*Lam 8 window docker-machine
我在 Window 10 中使用我的用户帐户权限创建了一个 docker-machine。
By command:
C:\Users\my_name>docker-machine create -d "virtualbox" haha
Run Code Online (Sandbox Code Playgroud)
但是,我在通过以管理员身份运行的 CMD 删除它们时遇到了问题。
C:\WINDOWS\system32>docker-machine rm haha
About to remove haha
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Error removing host "haha": C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm --delete haha failed:
0%...10%...20%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage.exe: error: Machine delete failed
VBoxManage.exe: error: Could not delete the medium storage unit 'C:\Users\Beetle\.docker\machine\machines\haha\disk.vmdk' (VERR_SHARING_VIOLATION)
VBoxManage.exe: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleUnregisterVM(struct HandlerArg *)" at line 165 of file VBoxManageMisc.cpp
C:\WINDOWS\system32>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
haha virtualbox Timeout
Run Code Online (Sandbox Code Playgroud)
虽然我发现这是一个权限问题,即用户创建的机器在Windows 10中无法被管理员删除。
如何在 Windows 10 中删除由具有管理员权限的 docker-machine(具有用户权限级别)创建的机器?
谢谢你的时间。
所以经过一些研究,它有点复杂,但我们可以从杀死 docker 机器开始:
$ docker-machine kill docker_machine_name
Run Code Online (Sandbox Code Playgroud)
然后一旦它运行它的进程,我们就可以执行 docker-machine ls 并看到它已停止:
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
docker_machine_name - virtualbox Stopped
Run Code Online (Sandbox Code Playgroud)
因此,当完成后,我们实际上需要导航到 docker 机器存储在我们本地机器上的位置。我们可以通过这个路径来实现,我有windows所以对于mac和linux用户可能不同,路径如下:
C:\Users\user_name\.docker\machine\machines
Run Code Online (Sandbox Code Playgroud)
作为目录,我们应该看到 docker_machine_name 或创建的 docker 机器。只需删除它,它就消失了。如果我们这样做
$ docker-machine ls
Run Code Online (Sandbox Code Playgroud)
我们应该看到我们要删除的机器已经不见了。希望这有帮助。