나는 지금 도커를 배우는 과정인데 최근 경험으로 지금 도커에 좀 회의적인 상태임.
우선 다른 연구실은 어떤지 모르겠는데 우리 연구실은 개인별로 워크스테이션 1대를 할당받는단 말야.
그러면 굳이 Docker를 만들 필요가 있을까 생각하게 됨
왜냐하면 내가 직접 Dockerfile 작성하다 보니까 이게 상당히 품이 많이 드는 일이더라고.
내가 실력이 없어서 그럴 수도 있는데 콘다로 잡으면 대충 반나절 이하로는 다 환경이 다 잡히거든. 그런데 도커는 대충 하루는 잡아야겠더라.
한번에 잘 되면 다행인데 라이브러리마다 기껏 이미지 만들고 빌드했는데 보통 한번에 잘 안되는데다 뭔가 안맞으면 다시 Dockerfile 수정하고, 이 과정이 생각보다 번거로웠음.
그리고 이렇게 Dockerfile 만든 다음에 할당 받은 워크스테이션에서만 쓰니까 굳이 의미가 없는 것 같음.
이번 프로젝트를 도커로 한 이유가 도커 공부를 좀 해봐야할 것 같아서, 그리고 혹시 서버를 옮길 일이 있을수도 있을 것 같아서 이거든.
결국 예상대로 드문 일이지만 서버를 옮기게 돼서 이제 이미지를 드디어 쓰게되나 했는데 막상 Dockfile을 옮기고 이미지를 빌드해서 실험을 돌리는데 안돌아가는 거야.
보니까 옮긴 서버랑 현재 서버랑 CUDA 버전이랑 드라이버가 너무 차이가 나서 안돌아가는 거더라.
그렇다고 새로 받은 서버에서 CUDA 버전이랑 드라이버를 맞춰주려니까 언제 또 이 서버를 다른 사람이 쓸지 모르는데 그 사람은 콘다로 현재 CUDA 버전 및 드라이버에 이미 실험 환경 다 맞춰놨을 텐데 내가 마음대로 바꿨다가 그 사람 꺼 안돌아가면 또 문제잖아.
그래서 "아 도커가 완벽한 재현성을 갖는 건 아니구나"라는 걸 느껴서 도커 사용에 좀 회의적으로 변함.
내가 느낀 게 맞음?
아니면 도커를 더 많이 다뤄 본 사람의 입장에서 다른 의견이 있음?
UV써봐 진짜 짱짱맨임 (docs.astral.sh/uv/)
엉 도커필수양 - dc App
nvidia도커파일쓰셈 - dc App
기업가면 도커 이미지로 클러스터에 던져서 실험하고 그래야할거라 하는게 무조건 좋음… 그리고 오래걸리는건 안익숙해서 그런거고 익숙해지면 도커파일 작성도 금방 해치울수있다