IT_World
[docker] 도커 이미지(Image)와 컨테이너(Container) 차이 본문
이미지(Image)와 컨테이너(Container)
이미지와 컨테이너는 다르다.
예를 들어 컴퓨터에 게임 프로그램을 설치한다고 가정하자
우리는 게임을 하기 위해서 게임 홈페이지에 들어가 game.exe(게임 파일)을 다운로드한 후, 컴퓨터에 game program(게임 실행 프로그램)을 설치한다. 게임을 열심히 하던 중, 이벤트를 하기 위해 게임 버전 업그레이드 알람이 왔고, 우리는 게임 버전을 업그레이드했다. 여기에서 과연, game program(게임실행프로그램)과 game.exe(게임 파일)은 모두 버전이 업그레이드된 것일까?
정답은 아니다.
game.exe(게임파일)은 게임 제작사에서 새로 다시 올리지 않는 한 업그레이드되지 않은 고정 파일이다.
game program(게임실행프로그램)만 업그레이드되는 것이다.
이미지 = 게임파일(game.exe) 컨테이너 = 설치된 파일(game program =game process ) |
한 마디로 이미지는 고정이다.
그리고 도커에서 이미지를 바탕으로 만들어진 컨테이너는 변경이 가능하기 때문에, 이미지에 어떤 것을 추가하여 새로운 이미지를 만들어내는 것은 가능하다.
도커는 계층화된 파일 시스템을 사용한다.
도커의 모든 이미지는 기본적으로 특정한 이미지로부터 생성된 컨테이너에 어떤 변경사항을 더하고(파일들을 변경하고), 이 변경된 상태를 새로운 이미지로 만들어내는 것이 가능하다.
SSH는 외부에서 접속하기 위해 설치해두는 서버 프로세스이다. SSH 서버에 접속해서 셸을 사용하고 종료하더라도 SSH 서버는 그대로 존재한 채 다른 접속을 대기한다. 셸은 대화형으로 리눅스 머신에 명령을 실행하기 위한 커맨드 라인 도구이다. 프로세스이기 때문에 셀을 중단하면, 그걸로 끝이다.
비슷해보이지만 도커로 외부 서버에 SSH로 접속하는 것과 셸을 직접 실행해서 사용하는 것 차이를 명확하게 이해해야 도커 컨테이너와 가상 머신을 혼동하지 않을 수 있다.
'OS > Ubuntu' 카테고리의 다른 글
[linux/shell] alias vi~/.bashrc source ~/.bashrc (0) | 2021.09.11 |
---|---|
[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기) (0) | 2021.06.02 |
[package]requirements.txt 패키지 관리 및 list freeze 정리 (0) | 2021.05.25 |
[Linux] tree Command(트리 명령)사용 (0) | 2021.05.23 |
[docker] 기초 :설치부터 - Container 까지 (0) | 2021.05.07 |