LinuxでDockerコンテナとVirtualBoxの仮想OSを同時に起動する
·
amgsk
LinuxでDocker(Desktop)とVirtualboxを同時に使用する場合の話。
事象
Dockerコンテナを起動中にVirtualBoxで仮想OSを立ち上げようとすると、以下のようにエラーが表示され起動が出来なかった。
逆にDockerDesktopのサービスを落としVirtualBoxを起動するとDockerコンテナの方が立ち上がらなくなる。
VirtualBox can't enable the AMD-V extension. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_SVM_IN_USE).
$ docker compose up Cannot connect to the Docker daemon at unix:///home/{user}/.docker/desktop/docker.sock. Is the docker daemon running?
解決方法
どうやらLinux版のDockerDesktopはKVMを利用していている事が原因で、VirtualBoxもKVMを利用しており複数のハイパーバイザが同時にKVMを利用することはできない。
以下のようにContextを変更することで、DockerDesktopをアンインストールすることなくDockerとVirtualBoxの両方の起動が出来るようになった。
$ docker context list NAME DESCRIPTION DOCKER ENDPOINT ERROR default * Current DOCKER_HOST based configuration unix:///var/run/docker.sock desktop-linux Docker Desktop unix:///home/{user}/.docker/desktop/docker.sock
既存のcontextを確認。*がついている箇所がカレント。
以下コマンドでdocker contextを変更する。
$ docker context use default default Current context is now "default"