yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
20211120_docker-machine_2

Docker for Macを使わないと決めたあなたへ(1)〜docker-machineコマンドが使えるまで〜

2021-11-20

この記事の続きはこちら
Docker for Macを使わないと決めたあなたへ(2)〜docker-machine上でhubot-slackコンテナを立ち上げてみる〜


Docker for Macは遅いと言われており、実際に苦しんだ経験をお持ちの方もおられるでしょう。

そんなあなたへ、以下記事を参考にdocker-machineコマンドを使って、Docker for Macを使わずにMacでDocker環境を構築する方法を紹介します
参考:Macに素のDockerをHomebrewでインストールする

※docker-machineはもうサポートされないことが決定しています、あくまでこの流れに抗う方のみ参考にされてください。
参考;Docker Machine


最終的な全体像はこちら
20211120_docker-machine_5


docker-toolboxをインストール

 
%  brew install docker-toolbox
...
...
🍺  docker-toolbox was successfully installed!

「docker-machine create –driver virtualbox 【マシン名】」のコマンドでDocker Machineが立ち上がるはずがエラー発生

%  docker-machine create --driver virtualbox dockerMachineTest
...
...
(dockerMachineTest) This is a known VirtualBox bug. Let's try to recover anyway...
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue

こちらのリンクを参照したところ、Macの「System Preferences > Security & Privacy」から許可が必要とのこと
VBoxManage: error: Failed to create the host-only adapter [closed]

「System software from developer “Oracle America, Inc.” has been updated」と書かれているので、
鍵のマークをクリックして設定変更できる状態になったら「Allow」ボタンをクリック

20211120_docker-machine_1

このあとMacの再起動をする

再起動したら、先程の中途半端に作られているdocker-machineは消しておく

%  docker-machine create --driver virtualbox dockerMachineTest
Docker machine "dockerMachineTest" already exists

%  docker-machine ls
NAME                ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
dockerMachineTest   -        virtualbox   Stopped                 Unknown

%  docker-machine rm dockerMachineTest
About to remove dockerMachineTest
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed dockerMachineTest

%  docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

気を取り直してもう一回やってみるがエラー

%  docker-machine create --driver virtualbox dockerMachineTest
...
...
(dockerMachineTest) Found a new host-only adapter: "vboxnet3"
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet3 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp

こちらのリンクを参考にしたところ、Virtualboxのバージョンを落とした方が良さそう
big surにしたらVirtualBoxがエラー吐いてへそ曲げた

virtualboxをアンインストール

%  brew uninstall virtualbox
...
...

brewは過去バージョンインストールできないので、やむなし
公式ページから6.1.26をダウンロードする

https://www.virtualbox.org/wiki/Download_Old_Builds_6_1

またdocker-machineは消しておく

%  docker-machine ls
NAME                ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
dockerMachineTest   -        virtualbox   Stopped                 Unknown

%  docker-machine rm dockerMachineTest
About to remove dockerMachineTest
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed dockerMachineTest

%  docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

再トライ

%  docker-machine create --driver virtualbox dockerMachineTest
...
...
(dockerMachineTest) Creating a new host-only adapter produced an error: /usr/local/bin/VBoxManage hostonlyif create failed:
(dockerMachineTest) 0%...
(dockerMachineTest) Progress state: NS_ERROR_FAILURE
(dockerMachineTest) VBoxManage: error: Failed to create the host-only adapter
(dockerMachineTest) VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
(dockerMachineTest) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
(dockerMachineTest) VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg *)" at line 95 of file VBoxManageHostonly.cpp
(dockerMachineTest)
(dockerMachineTest) This is a known VirtualBox bug. Let's try to recover anyway...
Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue

Virtualbox入れ直したから、また再起動が必要そう
先程の手順で、System Preferences > Security & Privacyから許可する

20211120_docker-machine_1

Mac再起動

またまたdocker-machineは消しておく

%  docker-machine ls
NAME                ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
dockerMachineTest   -        virtualbox   Stopped                 Unknown

%  docker-machine rm dockerMachineTest
About to remove dockerMachineTest
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed dockerMachineTest

%  docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

改めて起動してみるとできた!

%  docker-machine create --driver virtualbox dockerMachineTest
...
...
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 dockerMachineTest

「docker-machine ssh 【マシン名】」で中に入ると、謎のアイコンがお出迎え


%  docker-machine ssh dockerMachineTest
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net
docker@dockerMachineTest:~$

続きはこちら
Docker for Macを使わないと決めたあなたへ(2)〜docker-machine上でhubot-slackコンテナを立ち上げてみる〜