작성
·
168
0
docker commit 이 지금 실행중인 컨테이너를 이미지로 올리는건데 일종의 백업? 이라고 생각하는 개념에서 질문합니다 !
같은 의미에서 현재 a 라는 이미지를 컨테이너로 구동중인데 a 라는 이미지의 tag 를 변경해서 새로운 a:v2 라는 이미지를 생성한다면 commit 으로 이미지 생성하는것과 어떤 차이가 있나요 ?
commit 은 현재 시점에서 컨테이너의 변경사항을 포함해 이미지로 만드는거고 tag 는 단순히 최초에 받았던 a 라는 이미지에 대한 tag 만 변경해주는건가요 ? ( a 라는 이미지 변경사항은 포함되지 않고 )
답변 2
1
tag 는 pull 되어있는 이미지 자체를 식별성을 위해 이름표를 다는 것이고
commit 은 버전 관리를 위해 현재 이용하던 컨테이너를 수정 및 테스트를 해서 배포가능한 이미지로 make 한다고 생각하면 되겠네요! ( 여기서 dockerfile 형식의 문서화 작업을 거치면 build 라는 작업이 진행되어야 하는 거구요 )
이제 docker 및 kube 관련 업무를 해야해서 공부중인데 같이 고민해주셔서 감사합니다 강의는 늘 잘보구있어요!
0
안녕하세요 강사 최일선입니다.
백업이라 하기는 좀 어렵습니다. 쿠버네티스에서도 도커 레지스트리에서 계속 이미지를 업데이트 하며 사용합니다. 마이크로서비스아키텍처에서 배포할 이미지를 저장해두는 것이라 보는 것이 맞을 것 같습니다.
말씀하신 부분은 저도 상세히 비교 분석해보지 않은 부분이라 몇 문서를 찾아봤습니다.
다음 공식 문서에서는 Commit 보다는 Dockerfile을 사용해 컨테이너 관리를 문서화하고 유지 관리 할 것을 추천한다 얘기합니다.
https://docs.docker.com/engine/reference/commandline/commit/
스택 오버플로우에도 유사한 질문이 올라왔었는데요. 두 방식은 비슷하지만 차이점이 있다고 합니다. 최종 컨테이너의 docker build가 본질적으로 Commit과 동일하다 합니다. 자세한 아래 링크를 참고하세요!
https://stackoverflow.com/questions/41354128/in-docker-difference-with-commit-and-dockerfile
좋은 질문 감사드립니다:)