はじめに
2022/05/13 追記
現状では minikube よりも Rancher Desktop の方がオススメです
もし proxy 環境であれば以下の記事を参考にしてください
他の記事でも書かれていますが、 Docker Desktop が有償化されます
Docker Engine や CLI は無償なのでサーバーでの利用上は問題ありませんが、
macOS は基本的に Docker Desktop でのインストールが推奨されているため、
私も使っていました
Docker Desktop は GUI でコンテナの操作ができますが、
基本的にコマンド操作するので不要です
Docker Desktop のためだけに費用を払うのはもったいないですね
- 有償化の対象外
- 従業員 250 人未満 かつ 年間売上 1000万ドル未満
- 個人利用
- 教育目的の利用
- 非商用利用
- オープンソースプロジェクト
- 有償化の開始日: 2021年8月31日
- 猶予期限: 2022年1月31日
ということなので、今年のうちに Docker Desktop を使わずに済むようにします
以下のブログを参考にしました
2021/11/1 追記
以下の記事に追加の注意点を記載しました
Docker Desktop のアンインストール
Docker Desktop を起動し、右上の虫マークから Troubleshoot を開きます
一番下にある Uninstall
をクリックするとアンインストールできる、はずですが
なぜかうまくアンインストールできなかったため、結局 Applications から直接ゴミ箱へ送りました
minikube インストール
minikube と、仮想化のための hyperkit を Homebrew でインストールします
brew install hyperkit
brew install minikube
hyperkit を入れるとき、先に Docker Desktop をアンインストールできていないと
brew link でエラーになります
Docker Desktop をゴミ箱に入れたあとに改めて brew link すれば問題ありません
brew link hyperkit
docker インストール
今までは Docker Desktop 内の docker CLI を使っていたので、
改めて Homebrew で CLI をインストールします
brew install docker
brew install docker-compose
minikube 起動
今までは Docker Desktop を起動させてから docker コマンドを使っていましたが、
これからは minikube が動いている必要があります
minikube start
また、 docker コマンドに minikube を認識させる必要があるので、以下を実行します
eval $(minikube docker-env)
minikube の IPアドレス を hosts に書き込んでアクセスできるようにします
echo "`minikube ip` docker.local" | sudo tee -a /etc/hosts > /dev/null
docker を動かしたいだけなので、余計なものを止めておきます
$ minikube pause
⏸️ Pausing node minikube ...
⏯️ 次のnamespaceに存在する 14 個のコンテナを停止しました: kube-system, kubernetes-dashboard, storage-gluster, istio-operator
docker 実行
試しに Hello World を動かしてみます
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
エラーが出なければ、とりあえず docker は大丈夫です
認証ヘルパー変更
docker
は動いたものの、 docker-compose
実行時にエラーが、、、
$ docker-compose up
[+] Building 0.9s (3/3) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 31B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for docker.io/zenika/kotlin:1.4.20 0.8s
------
> [internal] load metadata for docker.io/zenika/kotlin:1.4.20:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: ``
認証を行なっていた docker-credential-desktop
もゴミ箱に入ったので、認証できなかったようです
こちらのブログを参考に、認証できるようにしました
代わりのものをインストールし、設定を変更します
brew install docker-credential-helper
~/.docker/config.json
を以下のように変更
- 変更前
{
"credsStore" : "desktop"
}
- 変更後
{
"credsStore" : "osxkeychain"
}
これで docker-compose
も動くようになりました
おわりに
ひとまず、今まで通り macOS でも無償で docker を使うことができるようになりました
あとは Windows を近々どうにかします
また、以下の記事に追加の注意点を記載していますので、ご参照ください