docker가 root 없는 daemon을 지원은 하는데


얘가 처음부터 보안을 염두에 둔 설계가 아니라


그냥 podman으로 갈아탔다


그리고 docker는 daemon이 필요하다는 것도 마음에 안 들어



podman으로 바꾸면서 느낀 가장 큰 불편한 점이


docker compose 대체한답시고 만든 podman-compose가 너무 허접해



데비안 stable (현재 11) 에서 podman 3.0.1 썼었는데


이게 podman-compose 최신 버전에서 터짐


다행히도 무슨 버그(1)인진 알아서 임의로 파이썬 코드 바꿈


버그 1) podman-compose>=1.0.2 가 컨테이너 네트워크 확인용으로

"podman network exists" 를 사용하는데 podman>=3.1.0 에서 지원돼서 데비안 11에선 터짐


이거 이슈 올라온지 1년 됐는데 안 고쳐짐 ㅋㅋ



여기서 끝난 게 아님


docker-compose.yaml에 depends_on이나 links 같은 컨테이너간 의존성이


podman에선 "--requires $NAME" 으로 표현되는데 이게 또 podman>=3.2.0 에서 지원함 ㅋㅋ


정신 나갈 거 같아서 데비안 12 출시일 얼마 안 남았다는 거 듣고 바로 업그레이드 해버림



덧붙여서 "--requires" 이거로도 ,docker의 links 같은 역할이 안됨


nginx로 컨테이너를 리버스 프록시 하려면 보통 컨테이너 이름으로


upstream을 설정하는데 podman은 못 찾아서 localhost로 바꾼 뒤에야 되더라



podman-compose 쓰면서 느낀 건데 원래 있는 pod 써라


pod 쓰면 위에서 서술한 localhost 이거 안해도 됨



내가 추천하는 방법은 pod 만들 떄까지만 podman-compose를 써


> podman-compose --in-pod $POD_NAME up



저런 거 빼고는 장점이 단점을 훨 상회해서 잘했다 생각함


podman으로 startup 서비스 관리하고 싶으면 systemd 사용해


> podman generate systemd --files --name $POD_NAME


이러면 알아서 만들어줘



podman으로 작업하면서 sudo를 한 번도 안 썼다는 게 좋더라


여담으로 러스트로 쓰인 컨테이너 런타임 (youki)로 실행하면 podman에선 root 없이 실행이 안 돼


이거도 이슈 열린 지 1년 됐네