Dev etc/etc

[Docker] 도커 이미지(Image)와 컨테이너

콩다영 2023. 6. 19.
728x90

 

도커 이미지

 : 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않음(Immutable)

도커 컨테이너

: 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장됨

Docker의 이미지와 컨테이너

같은 이미지에서 여러 개의 컨테이너를 생성할 수 있고

컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있음

 

 

 

 

 도커 이미지 

Ubuntu 이미지

: ubuntu를 실행하기 위한 모든 파일을 가지고 있고

MySQL 이미지는 debian을 기반으로 MySQL을 실행하는데 필요한 파일과 실행 명령어, 포트 정보 등을 가지고 있음

◈ Gitlab 이미지

: centos를 기반으로 ruby, go, database, redis, gitlab source, nginx 등을 가지고 있음

 

이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없음.
 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성만 하면 됨
 한 서버에 여러 개의 컨테이너를 실행할 수 있고, 수십,수백,수천 대의 서버도 문제없음
도커 이미지는 Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리할 수 있음

 

 

 

 

도커 컨테이너

도커는 BSD와 솔라리스(Solaris)와 같은 유닉스 운영체제에서 수십 년 간 사용되었던 개념이 현대적으로 재탄생된 최신 개념으로 특정 프로세스를 운영체제의 나머지와 일정 수준 분리해 실행시킬 수 있다는 개념
각 애플리케이션과 종속물이 운영체제 리소스의 분리된 세그먼트를 사용하는 방식
컨테이너는 훨씬 가볍고 운영체제 커널을 공유하며, 시동이 훨씬 빠르고 운영체제 전체 부팅보다 메모리를 훨씬 적게 차지

 

▷ 도커 컨테이너, '분리'와 '조절' 기능 제공

 이식성을 제공.

 결합성(Composability)을 제공

오케스트레이션과 스케일링이 쉬움

 가상 머신이 아닌 컨테이너 기반

 

 

 

 

Docker File

Docker Image를 만들기 위한 설정 파일
여러 가지 명령어를 토대로 Docker File을 작성하면 설정된 내용대로 Docker Image를 만들 수 있음

- 도커는 이미지를 만들기 위해 Dockerfile이라는 이미지 빌드용 DSLDomain Specific Language 파일을 사용함

- 단순 텍스트 파일로 일반적으로 소스와 함께 관리함

 

 

728x90
반응형

댓글