概要

macOSでDockerを使う方法として、Docker for macを使う方法が一般的です。
しかし、それ以外の方法でもDockerを使う方法があります。
そのひとつには, Docker Machineを使う方法があります。
Docker Machineは、VirtualBoxなどの仮想化ソフトの上で仮想マシンとしてDockerを動かす方法になります。

今回は、macOSで使えるParallels Desktopというソフトを使ってDocker Machineを動かす方法を紹介します。

環境

  • macOS Mojave
  • Parallels Desktop 14

注意

Parallels DesktopはmacOSで動く有料の仮想化ソフトです。
Docker MachineをParallels Desktopで動かすにはProエディション以上のライセンスが必要です。
そのため、StandardエディションなどのProエディション以上のライセンスで動かしていない場合はライセンスのアップグレードを行なってください。

Docker MachineとParallels Desktopについて

Docker Machineを使ったDockerは、dockerコマンドなどでDockerの操作をするときに仮想マシンとして動かしている環境でDockerの操作をします。
つまりリモートのDocker環境を操作できるということです。
そのため、デメリットですが、Docker for macを使う場合と色々と異なる部分が、発生することがあります。

私自身がParallels DesktopのDocker Machineを使ったメリットとしてあげるのは、Volumeをマウントした時の読み込みや書き込みの速度が速いという点があります。
また、環境はParallels Desktopの仮想マシンとなっているので、Parallels Desktopの仮想マシンの管理と同じように扱えるという利点があります。

インストール

Parallels Desktopを使ったDocker Machineのインストールでは、docker-machineコマンドを使います。
そのため、docker-machineコマンドとそれのParallels Desktopのプラグインをbrewコマンドでインストールします。
また、同時にdockerコマンドをインストールします。

brew install docker docker-machine docker-machine-parallels

次に、Docker Machineの作成をします。

docker-machine create --driver=parallels prl-dev

このコマンドの場合、prl-devという名前で仮想マシンを作成します。
仮想マシンのcpuやメモリなどの調整はParallels Desktopの管理画面からできます。

これでDocker Machineの準備ができました。

使い方

Docker Machineを使うときは毎回起動したりdockerコマンドが使えるように設定する必要があります。

Docker Machineの起動は次のコマンドでできます。

docker-machine start prl-dev

終了は次のコマンドでできます。

docker-machine stop prl-dev

起動後、すぐにdockerコマンドでDockerの操作をできるわけではありません。\
なぜかというと初期状態のdockerコマンドはどのDocker Machineを操作すればいいのかわからないためです。
そこで、どのDocker Machineを実行するのかを次のコマンドで指定します。

eval $(docker-machine env prl-dev)

このコマンドはターミナルを起動するたびに行う必要があります。

Docker Machineの操作のために、普段使うようなコマンドはこの辺りです。

さいごに

Parallels Desktopを使ったDocker環境の構築は、すでに使っているParallels Desktopに全て任せることができ、楽ができます。
個人的に色々と仮想環境を入れたくないので、この方法は採用しています。

他の人の参考になれば幸いです。