
워밍업클럽4기 DevOps 미션5: 컨테이너 이미지 사례 실습
Docker와 Containerd 명령 실습
▶ 사전 준비사항
1. 빌드
2. 이미지 리스트 조회
3. 태그 변경
4-1. 로그인
4-2. 이미지 업로드
5. 이미지 삭제
6. 이미지 다운로드
7. 이미지 -> 파일로 변환
8. 파일 -> 이미지로 변환
컨테이너디 (Containerd)
1. 네임스페이스 조회
2. 특정 네임스페이스 내 이미지 조회
3. 다운로드 및 이미지 확인
4. 태그 변경
5. 업로드
6. 이미지(namespace : default)-> 파일로 변환
7. 파일 -> 이미지로 변환(namespace : k8s.io)
8. 삭제 (namespace : k8s.io)
같은 이미지를 도커에서 받았을 때와 쿠버네티스에서 받았을 때 사이즈가 다른 이유
▶ Docker (490MB)
▶ Containerd (248.3 MiB)
1. Container Image를 만들 때 플랫폼(amd64, arm64)을 고려해야 되는데, Docker에서는 amd64를 받았고, Kuberentes에서 arm64를 받아서 이미지 크기가 달라졌을 것이다? X
PLATFORMS는 그냥 해당 이미지가 어떤 플랫폼을 지원하는지 정보
2. Container 이미지는 각각의 Layer로 구성돼 있는데, Docker에서 다운 받을 때는 전체 Layer를 받았고, Kubernetes에는 기존 이미지에 이미 존재하는 Layer가 있기 때문에 새로 받은 이미지의 Size가 작게 조회 됐을 것이다.
▶ Containerd -> Docker
3. 쿠버네티스에는 다른 Runtime을 사용 했을 수 있고, 같은 이미지더라도 사용하는 Runtime에 따라서 이미지의 크기는 달라질 것이다.
Docker는 다른 많은 기능들을 지원해 주기 때문에 다운 받은 이후 자신의 매타데이터 규격에 맞게 데이터들을 더 추가하고 이미지를 재구성 합니다.
반대로 Docker의 이미지를 Contaienrd로 가져가게 됐을 때, Docker에서 재구성을 하느라 커진 불필요한 메타데이터들이 그대로 들어간다.
댓글을 작성해보세요.