[Docker] Docker 용어 및 흐름(1)

2022. 6. 29. 13:04docker

docker

docker용어

Container (컨테이너)

일반적인 세상에서 컨테이너는 부산항 가면 배로 나르는 컨테이너를 생각하면 좋습니다! 컨테이너 안에 동대문 의류나, 자동차 등을 실을 수 있습니다.

서버에서 컨테이너의 개념은 응용 프로그램을 더 쉽게 만들고 실행하고 배포하도록 설계된 도구. 이 컨테이너로 컨테이너 기반의
오픈소스 가상화 플랫폼이며 생태계가 docker.

컨테이너 안에 Redis, Mysql 같은 프로그램을 컨테이너로 추상화해 동일한 인터페이스를 제공.

프로그램 손쉽게 이동 & 배포 & 관리를 손쉽게 해줌.

컨테이너는 소프트웨어 환경으로부터 '격리'시키고 개발과 스테이징 차이에도 불구하고 균일하게 동작하도록 보장함.

ex) AWS에서 인프라를 관리하다 GCP로 넘어가면 손쉽게 이동해서 배포할 수 있다.

Image(이미지)

도커에서 컨테이너 이미지는 코드/ 런타임/ 시스템 도구/ 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하고! 가볍고! 독립적이며 실행 가능한 패키지입니다. (이미지에 설정이나 종속성 (dependency)들이 들어있음)

컨테이너 이미지라 하면 이미지는 런타임 시 컨테이너가 되고 -> 도커 컨테이너 경우는 도커 엔진에서 실행될 때 이미지가 컨테이너 된다.

리눅스, 윈도우 기반의 애플리케이션 모두에서 사용할 수 있는 '컨테이너화'된 소프트웨어는 인프라 관계 없이 항상 동일하게 실행.

docker를 사용하지 않으면

installer다운 -> installer 실행 -> 프로그램 설치완료!

하지만 버전, 환경별로 안맞고 다시 인스톨러 설치하고 확인하고 고통.....ing

[도커 이미지] ------------------> [도커 컨테이너]

프로그램 실행하는데 필요한 -----------> [도커 컨테이너]

설정이나 종속성(디펜던시)를 가지고 있음 -------> [도커 컨테이너] (이미지의 instance이며 프로그램을 실행시킨다.)

[정리]

도커 이미지는 프로그램을 실행하는 데 필요한 설정/종속성을 가지고 있고,

이미지를 이용해 컨테이너를 생성한다!

그리고 생성된 도커 컨테이너를 이용해서 프로그램을 실행할 수 있다!

로 봐주시면 될 거 같습니다.


도커 흐름

실제 CLI 커맨드 입력

 

항상 도커를 사용할 때는... 

1. 먼저 도커 CLI로 커맨드 입력

2. 그러면 도커 서버(도커 데몬) 이 그 커맨드를 받아서 그것에 따라 이미지를 생성하던 컨테이너를 실행하던 모든 잡업을 하게 됩니다. 

 

 

도커 Client(CLI) --->  도커 Server(Deamon)