AMD の CPU で Docker Toolbox 19.03 を使用する方法
はじめに
Ryzen 搭載 Win 10 Home 環境に Docker Toolbox 19.03.1 を入れて実行したところ、下記エラーが出て処理が止まりました。
Running pre-create checks...
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...
AMD-v (SVM) は有効になっていました。
ネットで調べてみると、どうやら Docker Toolbox に不具合があるようで、旧バージョンの 18.06.1-ce をインストールすれば解決するとの投稿をみつけました。
- Docker Toolbox on Win10 on AMD64 machine precheck failure · Issue #830 · docker/toolbox · GitHub
- https://github.com/docker/toolbox/issues/830#issuecomment-515784957
実際に試したところ無事動いたのですが、ただでさえ古いソフトなのに更に古いバージョンは避けたいなぁと思い、更に試行錯誤を繰り返したところ、エラーを回避して最新版を入れる方法が見つかりました。
今日は AMD の CPU (Ryzen) を用いた Windows 10 Home 環境で Docker Toolbox の最新版 19.03.1 を使用する方法をご紹介します。
- OS
- Windows 10 Home
- Docker Toolbox
- 19.03.1
- Git
- 2.9.0.windows.1
- VirtualBox
- 6.1
最新版とはいえすでに開発停止になっているソフトなので、
可能であれば Docker Desktop for Windows を使用するのがいいと思います。
- Docker Desktop for Windows - Docker Hub
- https://hub.docker.com/editions/community/docker-ce-desktop-windows
1. Docker Toolbox のインストール
Docker Toolbox のインストールは、基本的にはお好みで進めていただいて大丈夫です。
ただし、特に事情がない場合は「Select Additional Tasks」のところで、
Add docker binaries to PATHにチェックを入れてください。
(デフォルトでチェック済だと思います)
Docker Toolbox のインストーラーで Git と VirtualBox も同時にインストール可能ですが、それぞれ個別に最新版をインストールするのが良いと思います。
- Release v19.03.1 · docker/toolbox · GitHub
- https://github.com/docker/toolbox/releases/tag/v19.03.1
- Git - Downloads
- https://git-scm.com/downloads
- Oracle VM VirtualBox
- https://www.virtualbox.org/
2. 【解決策】docker machine を手動で作成
ここからが本題です。
インストール完了後、通常はデスクトップやメニューの Docker Quickstart Terminal アイコンから実行すると思いますが、今回は PowerShell を使います。
(管理者権限でなくて大丈夫です)
カレントディレクトリはどこでもいいので、下記コマンドを実行してください。
PS > docker-machine create --virtualbox-no-vtx-check -d virtualbox default
...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env toolbox
上記のようなメッセージが出たら完了で、PowerShell は閉じて OK です。
以降は Docker Quickstart Terminal アイコンから docker machine を起動できるようになります。
3. 解決までの経緯
まず旧バージョンの 18.06.1-ce で動作確認をした後に、試しに各ファイルを 19.03.1 のものに置き換えてみました。
(19.0.3.1 をアンインストールする前にコピーしておきました)
すると、その状態でも docker machine は起動し、docker -v コマンドなどが動作しました。
この結果とエラーメッセージの内容から、初期処理の docker machine ("default" 仮想環境) 構築のところで問題が起きているのかな、と推測しました。
(先に紹介した GitHub issue へのコメントでも言及されていますね)
そんな中、改めて Docker Toolbox の README.md を確認していたときに docker-machine create の記述を見て、もしかして仮想機能の確認を回避してインストールする方法があるのでは?と思いました。
- Building the Docker Toolbox (GitHub - docker/toolbox: The Docker Toolbox)
- https://github.com/docker/toolbox#building-the-docker-toolbox
docker-machine -h でヘルプを参照したところ、
最下部に docker-machine COMMAND --help のメッセージがありました。
PS > docker-machine -h
...
Run 'docker-machine COMMAND --help' for more information on a command.
それに従って docker-machine create --help を実行したところ、
--virtualbox-no-vtx-check のオプションを発見して、解決に至りました。
PS > docker-machine create --help
...
--virtualbox-no-vtx-check
Disable checking for the availability of hardware virtualization before the vm is started [$VIRTUALBOX_NO_VTX_CHECK]
...
4. おわりに
この解決策を見つけるまでに数時間かかりましたが、その間に様々なことを学びました。
本来やりたいことが環境構築ではない場合、こういった問題が起きると焦ってしまい、何とか動くようにして終了とすることもありますよね。
しかし、落ち着いて原因を考えて試行錯誤すると、問題解決のスキルが身につくと改めて実感しました。
締切が迫っている状況などでは難しいと思いますが、後ほど余裕ができた時に改めて取り組むと良いのかなと思います。
ところで、先ほど改めて issue のスレッドを読み進めていたら、今回紹介した解決策が投稿されていたのを発見しました。
見逃していました...。
- Docker Toolbox on Win10 on AMD64 machine precheck failure · Issue #830 · docker/toolbox · GitHub
- https://github.com/docker/toolbox/issues/830#issuecomment-544218868