본문 바로가기
도커

컨테이너와 컨테이너 이미지의 차이

by 오렌지마끼야또 2023. 2. 17.
728x90
반응형

 

 

 

 

컨테이너 1개 = 애플리케이션 1개

각 컨테이너는 독립적으로 격리되서 운영됨

user id 와 cpu, memory, network, disk 등 하드웨어 리소스를 각각 따로따로 가지고 있음

독립적이기 때문에 nodejs webserver 는 php나 mysql에 영향을 주지 않는다.

그래서 고객이 webserver 에 버튼하나 만들어달라고 하면 nodejs webserver 만 수정해서 배포하면 됨.

 

 

 

컨테이너는 어떻게 동작하는가

docker HOST : 컨테이너를 동작시킬 수 있는 os. 리눅스 커널을 가지고 있음.

 

docker HOST 에 도커를 설치하고 systemctl start docker 명령어로 시작하면 dockerd(도커 데몬)이 동작함. 도커 데몬이 없으면 컨테이너가 동작할 수 없음.

 

HOST 입장에서 컨테이너는 단순히 프로세스 하나이다.

 

 

 

 

컨테이너와 컨테이너 이미지의 차이

컨테이너 이미지 run -> 컨테이너

 

3번째 레이어 : 실행 명령어 이미지

2번째 레이어 : 소스코드 이미지

1번째 레이어 :  base 이미지(필요 환경)

 

만들고자 하는 컨테이너마다 레이어의 개수는 다를 수 있음.

시스템에서는 각각의 이미지를 서로 다른 UUID로 저장함.

하나의 컨테이너에 필요한 이미지들의 조합이 컨테이너 이미지이다.

컨테이너 이미지는 파일형태로 저장된다.(위의 경우 3개의 파일)

 

컨테이너를 만들 때 이 구조대로 빌드한다.

 

컨테이너 이미지 = 저장소에 저장되어 있는 그냥 파일. RO : read only

이 컨테이너 이미지를 run(실행) 시키면

HOST 에서 동작하는 컨테이너(하나의 프로세스). RW : read and write

 

 

 

 

컨테이너 이미지를 다운받아서 실행시키는 방법

Docker HOST 에 도커를 설치하고 dockerd 가 실행중이다.

nginx 웹서버를 만들어보자

docker client command 입력

$ docker search nginx : hub.docker.com 에 nginx 컨테이너 이미지가 있는지 검색. 있으면 리스트 출력

$ docker pull nginx:latest : 이미지가 있으면 다운로드.

$ docker run -d --name web -p 80:80 nginx:latest : nginx:latest 컨테이너 이미지를 web 이라는 이름의 컨테이너로 실행시킴.

 

라이브러리를 설치하거나, 설정파일을 만들거나, 웹페이지를 만들어서 넣지 않아도 이미 컨테이너 이미지로 다 만들어져 있기 때문에 그냥 가져다 실행하면 바로 운영 가능.

 

 

 

 

 

 

 

 

출처

https://www.youtube.com/watch?v=m454YTyPWSk&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=10 

 

728x90
반응형

댓글