Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
トップ «前の日記(2021/08/31 (火) ) 最新 次の日記(2021/09/02 (木) )» 編集 RSS feed

HsbtDiary


2021/09/01 (水) [長年日記]

Docker Desktop から podman に変えた

朝起きたら 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 マウントはどうなってるのか、とかパフォーマンスは?というのは明日以降で。頑張りましょう。