Podman
こういうツイートを見てちょっと悲しくなったので使い勝手とか Docker との違いとかを記しておきます
https://tweet-card.now.sh/1331814293793165312.png?lang=en&theme=dark&scale=1 https://twitter.com/wakamesoba98/status/1331814293793165312
使っている環境
Fedora CoreOS 32.20201104.3.0
podman version 2.1.1
Docker 使用歴
2年くらい?
自分で Docker ホストの面倒を見てる(自宅サーバー→VPS)
自分で Dockerfile 書いたりしてる
勿論業務でも使った事がある
自宅環境では Swarm 以外の機能は割と全部使っていた
Docker Compose ガシガシ使っていたので
Network とか Volume もどんどん使っていた
Podman 使用歴
4ヶ月くらい?
新しく自宅サーバーを VMware ESXi をで立てたので、折角だしと Fedora CoreOS を入れたのが始まり
自分で Podman ホストの面倒を見てる(自宅サーバーの Fedora CoreOS)
自分で Dockerfile 書いてる
Podman の良いところ
daemon-less
別に daemon 要らんしね
restart を自分で何とかしないといけなくなった
けど systemd とかで柔軟に管理できるようになったしそもそも Docker が面倒見るべきじゃなかったよね
メモリ使用量とかは分からない
non-root
適当なユーザーでも sudo 無しでコンテナをいじれるのが嬉しい
docker group に追加して意図せず root 権限を付与しちゃうみたいな問題も起きない
Kubernetes との親和性
Docker Compose みたいな外部のオーケストレーションに頼らなくても簡単なオーケストレーションができる
現在 Docker Compose で動かしていたサービスを移行中
Kubernetes 使ったことないのでアレだけど
Docker との違いで躓いたところ
ポートバインディングの仕様
non-root container の場合
もちろん privileged port はバインドできない
ホストのポートにバインドされる
root container の場合
privileged port も含めてどのポートでもバインド出来る
コンテナ毎にネットワークが切られてホストで NAPT される?
外から root container がバインドしてるポートに疎通が取れない…
なんでだよ
Dockerfile の仕様
Docker だと WORKDIR で存在しないディレクトリを指定すると自動で掘ってくれるけど Podman だと掘られない
code:workdir-example/Dockerfile
WORKDIR /hoge
COPY ./hello.txt /hoge
Docker なら /hoge ディレクトリが掘られて /hoge/hello.txt とコピーされるけど
Podman だと /hoge ディレクトが掘られないので ./hello.txt が /hoge にコピーされる
総括
突然 Docker サポート外にして Podman オンリーはちょっと強引だけど、 Podman 自体は悪くないよ
本当に突然だったのか調べてないので不明、事前にアナウンスしてそうだけれど…
Docker がコンテナ仮想化を寡占するのはよろしくないので Podman 然り他のソリューションもどしどし出てきてほしさ
Docker は早く nftables サポートせいや
https://tweet-card.now.sh/1331820197062144000.png?lang=en&theme=dark&scale=1 https://twitter.com/rokoucha/status/1331820197062144000
これどうなんだろう、自分としては普通にありそうと思ってるけど
まあ僕は nftables 使ってるので…
Play kube あたりまだ触ってる途中なのでどんどん触っていきたい
かなり良さそうだけど初めてで Docker Compose から移行するのが大変なのであんまり進んでいない
k8s やったことないので