container 와 image 사이의 관계 질문
68
작성한 질문수 1
안녕하세요
비전공자로 AI 관련 공부를 하면서 기본적인 도커 지식의 필요성을 느껴서 공부하고 있습니다.
실습하면서 궁금한 점이 생겼는대 docker run nginx 해서 container 를 생성해서 image 가 띄워진 것을 확인하고
docker stop 하고 docker rm 해서 해당 container 를 삭제하고 나서 docker image ls 확인해보니까 image 는 남아있습니다.
container 삭제와 그 container 에 띄워져 있던 image 가 같이 삭제되지 않는것 처럼 보이는데 이걸 어떻게 이해하는게 좋을까요
너무 쓸데 없을 수 있는 질문 같아 죄송합니다.
답변 2
0
안녕하세요 민식님 ! 질문 너무 잘 해주셨어요ㅎㅎ
절대 쓸데없는 질문 아니에요 !! 질문 주신 내용에 대해 차근차근 설명드려볼게요 ~
우선 Docker의 이미지와 컨테이너는 완전히 별개에요 !
docker run nginx를 실행하면 nginx 이미지를 기반으로 컨테이너가 만들어지고 실행되요 ~
이후 docker stop으로 컨테이너를 멈추고 docker rm으로 삭제하더라도,
이 과정은 컨테이너만 지우는 것이고 이미지 자체는 삭제되지 않아요 ~
이미지는 애플리케이션 실행을 위한 설치본(청사진)이고,
컨테이너는 그 이미지를 실제로 실행시켜 만든 인스턴스에요 !
비유하자면 이미지는 운영체제 설치 CD,
컨테이너는 그걸로 부팅한 컴퓨터라고 생각하시면 이해가 쉬워요 ~
따라서 컨테이너를 지워도 이미지는 남아 있고,
이 이미지를 지우고 싶다면 docker image rm [이미지ID 또는 이미지명] 명령어를 사용하면 됩니다!!
단, 이 이미지를 사용하는 다른 컨테이너가 남아 있다면 삭제가 안 될 수 있어요 :)
지금처럼 하나씩 실습하면서 개념을 정확히 이해해가는 게 정말 중요해요 ~
계속 이렇게 학습해나가시면 분명 빠르게 성장하실 거예요 !
추가로 궁금하신점 있으시면 편하게 질문주세요~~😄😄
0
안녕하세요, 인프런 AI 인턴입니다. 김민식님.
Docker에서 이미지와 컨테이너의 관계에 대해 궁금증을 가지셨군요. Docker의 이미지와 컨테이너 사이의 관계는 Docker의 핵심 개념 중 하나입니다.
이미지와 컨테이너의 관계
이미지(Image):
- Docker 이미지는 읽기 전용 템플릿입니다. 애플리케이션 실행에 필요한 모든 파일과 설정을 포함하고 있습니다.
- 이미지는 여러 컨테이너를 생성하는 데 사용될 수 있습니다. 즉, 하나의 이미지로부터 여러 개의 컨테이너를 만들 수 있습니다.
- Docker 이미지는 읽기 전용 템플릿입니다. 애플리케이션 실행에 필요한 모든 파일과 설정을 포함하고 있습니다.
컨테이너(Container):
- 컨테이너는 실행 가능한 인스턴스입니다. 이미지를 기반으로 생성되며, 이미지에 정의된 요소를 실행합니다.
- 컨테이너는 시작되면 독립적인 실행 환경을 제공합니다.
- 컨테이너는 실행 가능한 인스턴스입니다. 이미지를 기반으로 생성되며, 이미지에 정의된 요소를 실행합니다.
왜 컨테이너 삭제 후에도 이미지가 남아있는가?
- 독립적인 리소스: 컨테이너와 이미지는 서로 다른 개념입니다. 컨테이너는 이미지를 기반으로 하지만, 컨테이너가 삭제되더라도 원본 이미지에는 영향을 미치지 않습니다. 이는 이미지가 여러 컨테이너에서 재사용될 수 있기 때문입니다.
- 재사용성: Docker 이미지는 여러 번 재사용될 수 있습니다. 한 컨테이너를 삭제하더라도 이미지를 보존함으로써 동일한 이미지를 기반으로 새 컨테이너를 손쉽게 만들 수 있습니다.
추가적인 정보를 제공할 수 있는 유사한 질문 링크를 소개합니다:
- 도커 이미지와 컨테이너 관계 이해하기
도움이 되셨길 바라며, 더 많은 도움이 필요하시다면 언제든지 질문해 주세요. 곧 지식공유자나 다른 학습자들께서도 도움을 드릴 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
EC2 터미널에서 docker pull
0
60
2
AWS ECR
0
55
2
FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다
1
98
2
Redis 볼륨 설정?
0
112
2
컨테이너의 IP
0
78
2
도커 이미지를 만들 때 application.yml
0
100
2
compose.yml 관리
0
86
2
ECR 리포지토리에 이미지가 3개가 보입니다.
0
75
2
액세스 키 등록하는 시점 관련 질문이 있습니다.
0
81
1
depends_on에 따른 컨테이너 실행 순서
0
74
2
실제 웹 서비스 배포 시 질문
0
80
2
도커 volume 질문
0
65
3
HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?
0
71
2
sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?
0
70
2
39강 도커파일 빌드 경로 질문이 있습니다.
0
67
2
도커파일 copy
0
68
2
실무에서 docker compose up --build를 할 때
0
182
2
mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우
0
83
2
도커 허브에서 postgres 버전 확인하는 법
0
126
2
보충 자료와도 관련된 추가 내용
1
81
1
현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?
0
105
2
노션 자료에 안 보이는 이미지가 있습니다
0
98
1
도커 허브에서의 latest가 가장 최신인 게 맞나요?
0
114
2
docker image ls 실행 시 나오는 내용이 다릅니다
0
84
2





