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년 됐네
이래도 데비안입니까?
쓰다 보니 데비안 문제네 ㅋㅋㅋㅋㅋㅋ
4.5가 최신버전인데 3버전댸는 뭐냐
podman은 레드햇에서 적극적으로 개발하고 지원해주는데 왜 RHEL계열을 안 쓰고 다른 배포판에서 고생함... 그것도 하필 패키지버전 옛날꺼만 있는 데비안에서
도커컴포즈랑 포드맨이랑 호환된다 그냥 섞어쓰면됌