LoginSignup
26
34

More than 1 year has passed since last update.

Docker Desktopを使わない(代替)Dockerのインストール for Mac

Last updated at Posted at 2021-09-17

Docker Desktopの代替方法

Docker Desktopが有料化ということで、Docker Desktopが使えない場合、代替方法についてのメモ。

Dockerの仕組み

普段使っているDocker=Docker Engineであり、Dockerデーモンによって構成されるクライアント・サーバーアプリケーションである。このDocker EngineはLinux上でしか対応していないので、MacやWindowsでは直接起動できない。そのためDoker Desktopで仮想環境を構築して、そこで起動している。
なので、仮想環境を用意すれば良いということ。
今回はVirtualBoxとDocker Machineを使って起動する。

前提

Docker Desktopがインストールされていない環境の前提です。
Docker DesktopをインストールするとDocker Engineとかも一緒にインストールされてしまっているので、この方法を実行するとうまくいかない可能性があります。
こちらの方法を実行する前にアンインストールすることを推奨します。

1. Homebrew

Homebrew使ってインストールしていくので、以下を参照してインストール。

2. Dockerインストール

HomebrewでDocker(Docker Engine)をインストールします。
caskのDockerはDocker Desktopなので注意。

以下のコマンドでインストール
brew install docker

3. Docker Machineをインストール

Docker Machineは仮想マシン上にDocker Engineをインストールするツール。
これを使ってVirtulboxにDockerをインストールします。

以下のコマンドでインストール
brew install docker-machine

4. ViutualBoxのインストール

仮想マシンを起動するためにViutualBoxをインストールします。
以下からインストールしてください。

5. Docker Machineを使って仮想マシンを作成

準備ができたのでDocker Machineを使って仮想マシンを作成します。
まずは仮想マシンの一覧を見てみます。

仮想マシン一覧
docker-machine ls
結果
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

何も作成されていないのが確認できます。
仮想マシンの作成は以下のコマンドで作成します。

仮想マシンを作成
docker-machine create --driver virtualbox default

default は仮想マシンの名前になります。
既に default が存在している場合は別の名前にします。

作成後にもう一度 ls してみます。

仮想マシン一覧
$ docker-machine ls

NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER      ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v19.03.12   

作成が確認できました。

6. 環境変数を設定

Dockerコマンドでコンテナを構築する前に、Dockerの接続先等の環境変数をセットする必要があります。
以下のコマンド実行で一括設定できます。

環境変数を設定
eval "$(docker-machine env default)"

docker-machine env default で必要な環境変数がエクスポートされるので上記で簡単にセットできます。
仮想マシンの再起動やシェルの再起動で毎回実行が必要になります。
毎回の設定が面倒な場合以下のように.zshrcとかに記載しても良いかもしれないですね。

毎回実行面倒な人用
echo 'eval "$(docker-machine env default)"' >> ~/.zshrc

7. コンテナを起動してみる

これでおおよそ完了したのでコンテナを起動してみます。

docker pull swaggerapi/swagger-editor
docker run -d -p 8080:8080 swaggerapi/swagger-editor

swagger-editorを起動してみました。
確認してみましょう。
接続先は仮想マシンのIPを指定する必要があります。
以下のコマンドでわかります。

IPアドレスを確認
docker-machine ip default
結果
192.168.99.100

まあ、docker-machine ls で表示されたURLのIPアドレスとと同じになると思います。
http://192.168.99.100:8080 で接続すると確認できるかと思います。

スクリーンショット 2021-09-17 11.10.21.png

8. localhostで接続したい

いちいちIPアドレス覚えておくのも調べるのも面倒なので、localhostで繋ぎたいと思ったはず。
そんなときはVirtualBoxのポートフォアーディング使いましょう。

VirtualBoxを開くとdefaultマシンがあるのでそちらの設定を表示。
スクリーンショット 2021-09-17 11.16.26.png

”ネットワーク”の”アダプター1”で”高度”を開いて怪しいフォントの”ポートフォアーディング”を選択。
スクリーンショット 2021-09-17 11.13.52.png

ここにポート設定を添付の画像のように記載。
今回はlocalhost(127.0.0.1)の8080ポートを仮想マシンの8080ポートに転送する。
スクリーンショット 2021-09-17 11.15.20.png

これでOKをクリックすれば完了です。
http://localhost:8080 いざ接続してみましょう。
スクリーンショット 2021-09-17 11.22.41.png

成功しました!

9. 仮想マシンの起動とか停止

しばらく使用しない場合や都度都度実行&停止したい時は以下を仮想マシンを停止します。
仮想マシンを停止したい場合は以下を実行します。

停止
docker-machine stop default

起動は以下。

起動
docker-machine start default

おわり

上記でだいたいできるとは思っています。
まあ、Docker Desktop利用できる人はそのままDocker Desktop使った方が簡単であるし、Docker応援するためにお金は払った方が良い。

参考

26
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
34