投稿日:
2019年6月21日
最終更新日:
【MacBookPro2019 Mojave】Docker for macで「docker desktop is starting」のまま起動しない場合の解決方法【Homebrew】
YouTubeも見てね♪
ねこじゃすり
猫を魅了する魔法の装備品!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
目次
Docker for macが動かない
先日、MacBookPro 2019を購入したのですが、Docker環境を整えようとHomebrew CaskでDocker for macを入れて起動しようと思ったのですが、なぜかDocker Desktop is Starting...
のまま先に進まない現象が発生しました。orz
特に変な作業をしたわけでもないため、なぜなのか原因が分からず解決出来なかったため、自前でDockerホストを動かすことでなんとかDockerを使えるようになりました。
今回はその時の対応方法を備忘録として記事にまとめてみようと思います。
手順
前提
Docker関連については、以下のコマンドのみ実行し、dockerやdocker-compose、docker-machineなどはHomebrewでは入れずにDocker for macの中でインストールさせています。
また、環境としてはそれぞれのコマンドは使えるが、以下のようにDockerへの接続が出来ない状態となっています。
1 |
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
|
Virtualboxのインストール
解決するには、自前でdocker-machineでDocker Engineを整える必要がありそうでした。
なので、まずはvirtualboxをインストールしましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
==> Caveats
To install and/or use virtualbox you may need to enable its kernel extension in:
System Preferences → Security & Privacy → General
For more information refer to vendor documentation or this Apple Technical Note:
https://developer.apple.com/library/content/technotes/tn2459/_index.html
==> Satisfying dependencies
==> Downloading https://download.virtualbox.org/virtualbox/6.0.8/VirtualBox-6.0.8-130520-OSX.dmg
Already downloaded: /Users/blogenist/Library/Caches/Homebrew/downloads/130d78b88001e8d144b4c39fedf0caa739515abf930f870f90f440eaf644ea8c--VirtualBox-6.0.8-130520-OSX.dmg
==> Verifying SHA-256 checksum for Cask 'virtualbox'.
==> Installing Cask virtualbox
==> Running installer for virtualbox; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
installer: Package name is Oracle VM VirtualBox
installer: Upgrading at base path /
installer: The upgrade was successful.
🍺 virtualbox was successfully installed!
|
docker-machineにdefaultを作成
次に、dockerr-machineにdefault
のDocker Engineを作成します。
以下のコマンドで作成しましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Running pre-create checks...
Creating machine...
(default) Copying /Users/blogenist/.docker/machine/cache/boot2docker.iso to /Users/blogenist/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
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 default
|
環境変数の登録
次に、先ほど作成したdefault環境の各変数を以下のコマンドで反映しましょう。
今回はfish shellを使っているので以下のコマンドとなります。
1 |
eval (docker-machine env default)
|
ここまで行うことで、以下のコマンドでDockerへの接続が通るようになります。
1 |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
確認
では、実際に適当なdocker-compose.yml
を作成して起動してみましょう。
1
2
3
4
5
6
7
8
9
|
Creating network "sample_default" with the default driver
Building app
Step 1/7 : FROM node:10.8.0-stretch
...
(略)
...
Successfully built 8cb3c66f9f22
Successfully tagged sample_app:latest
Creating sample_app_1 ... done
|
1
2
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
092031f2edfe sample_app "node" 4 seconds ago Up 4 seconds 0.0.0.0:3000->3000/tcp sample_app_1
|
正常に動きましたね♪
終わりに
Docker for macが使えないときはどうなるかと思いましたが、とりあえずこれでDockerを使った開発は出来そうなので一件落着です。
原因については分かったら追記しますが、同じようにお困りの方がいましたらぜひ参考にしてみてください♪