朝起きたら Docker Desktop が 4.0 になって、物々しい感じの表示が出たので調べてみたら、営利利用は課金してねということになったっぽい。
https://www.docker.com/blog/updating-product-subscriptions/
最近は個人の開発でしか使ってないし OSS 利用とは言えるけど、会社関連で一切使わないということもないよなあという感じだったので、macOS からえいっとアンインストールしていったん VitrualBox と docker-machine にした。この辺の手順は moznion さんが書いてるのでみてください。
https://moznion.hatenadiary.com/entry/2021/09/01/112601
作ってから https://twitter.com/tnk4on/status/1432856660528140292 という tweet を見かけて、「やっぱ VirtualBox を別途インストールするのも system extension ありきで嫌だし、docker-machine も継続的な開発が望めないし」ということで podman を試してみたところなかなか良かったのでこっちで生活することにした。
podman 自体は brew install podman
でインストールした後に以下のような感じで軽く触って動いたのですごい〜となった。
podman machine init
podman machine start
podman build ...
podman pull docker.io/...
podman run ...
unqualified-search-registries
というのを入れると docker.io などの url を短縮できるぽいので $HOME/.config/containers/registries.conf
に書いてみたけど、効いてないのか短縮できないのでこれはあとで。podman で作成された vm の中だと vm 内での設定も含めて効いてるようだけどなんだろうなあ。
podman は docker とほぼほぼ互換っぽいのでこのままでもいいんだけど、docker コマンドを使いたいこともあるので brew install docker
をした上で podman system コマンドを
$ podman system connection list
Name Identity URI
podman-machine-default* /Users/hsbt/.ssh/podman-machine-default ssh://core@localhost:59080/run/user/1000/podman/podman.sock
podman-machine-default-root /Users/hsbt/.ssh/podman-machine-default ssh://root@localhost:59080/run/podman/podman.sock
とやると podman で作られた vm の情報が inspect できるので、上の情報を用いて下のような ssh_config を用意する。
Host podman
HostName localhost
Port 59080
User root
IdentityFile /Users/hsbt/.ssh/podman-machine-default
と設定した上で DOCKER_HOST を以下のように fish なら
$ set -gx DOCKER_HOST "ssh://podman"
などやると podman でも docker コマンドでも動くようになった(bash/zsh なら export とか適当に読み替えてください)。最高。ただ、vscode-docker などは ssh での docker に対応してないぽいのでそこは継続調査。別にそれほど使ってないからアンインストールでもいいや。
k8s は minikube をやろうとしたらダメだったので ubuntu の micro8s を使った。こっちはこっちで multipass 経由の vm を別途立ち上げって感じだけど docker の中に混ぜるよりはいいって気もする。
docker compose とか volume マウントはどうなってるのか、とかパフォーマンスは?というのは明日以降で。頑張りましょう。