"15단계로 배우는 도커와 쿠버네티스"를 참조하여 작성하였습니다.
<도커>
- 컨테이너 기반 가상화 도구
- Go 언어로 개발
- Container 관련 기술의 사실상 표준
- 애플리케이션 배포에 초점
왜 사용할까? 실제 선박용 컨테이너를 생각해보자!
화물선에 담긴 물건을 사람들이 직접 운반-> 짐을 내리는 작업에서 병목 구간이 생김
파이프라인에서 병목 구간을 해소하면서 개발 및 운영을 원활하게 할 수 있게 됨.
- 클라이언트/서버 모델
- 도커 데몬, 도커 클라이언트(docker command) 역할을 함(소켓을 통해서 통신을 하게 된다.)
- 이미지로 컨테이너를 만듦
- 이미지, 컨테이너
- 도커 레지스트리
- 도커 데몬(Docker Daemon) ->사용자가 직접 제어하지 않고 백그라운드에서 작업을 수행
- 클라이언트에서 도커 커맨드를 전달받고, 도커 오브젝트인 이미지, 컨테이너, 볼륨, 네트워크 등을 관리
- 네트워크 너머에 있는 원격 클라이언트로부터 요청을 받는 것도 가능
- 도커 클라이언트 (도커 커맨드)
-컨테이너 조작을 위한 CLI(Command Line Interface) 클라이언트
- 컨테이너, 이미지, 네트워크, 볼륨 등의 도커 오브젝트를 관리
- 명령어 : docker build, docker pull, docker run
- 도커 이미지
-컨테이너를 기동하기 위한 실행 파일과 설정 파일의 묶음
-이미지를 가지고 실행을 하는데 이미지에 담긴 미들웨어나 애플리케이션이 설정에 따라 기동
->이미지와 설정을 통해서 컨테이너가 만들어진다.
-하나의 이미지는 여러 Layer의 조합으로 이루어짐
-대부분의 이미지는 다른 이미지에 기반하여 만들어짐 ( 이미 만들어진 이미지는 read-only(참조 영향을 주지 않기 위해) )
ex) nginx는 ubuntu의 Layer에 기반 ( 매번 만드는게 아니라 기존에 있는 것을 사용(참조함으로서))
- 유니온 파일 시스템에 의존
- 이미지를 만들 때는 기반 이미지와 설치 스크립트 등을 Dockerfile(설치 파일)에 기재하여 빌드
- 도커 컨테이너 ->프로세스라고 이해한다(격리 보장)
- docker run 명령을 통해 이미지는 컨테이너로 변환되어 하나의 인스턴스가 됨
-IP 주소를 가지는 하나의 독립된 서버처럼 동작
-중지 컨테이너를 재기동할 경우 할당된 IP 주소 유지 안됨(host name으로 접근해야한다.)
- 실행 과정 : ①커맨드 실행 ②도커 리포지토리에서 이미지 다운로드 ③컨테이너를 만들어서 프로세스 실행
- 컨테이너의 생명 주기
- 이미지 : 실행되기 전의 상태
- 실행 : 컨테이너 위에서 프로세스가 실행 중인 상태
- 정지 : 프로세스의 종료코드, 로그가 보존된 채 정지한 상태
- 도커 레지스트리
- 컨테이너의 이미지가 보관되는 장소
- 기본적으로 도커 허브(Docker Hub -공개적으로 도커 이미지를 올릴 수 잇는 장소로 git hub와 비슷함)를 사용
- 레지스트리 종류
- 퍼블릭 레지스트리 : 누구나 이용할 수 있는 공개 레지스트리
- 클라우드 레지스트리
- 배공개 레지스트리
- 레지스트리와 쿠버네티스의 관계
- 레지스트리는 개발한 컨테이너 이미지를 쿠버네티스에서 실행하기 위한 중간 창고와도 같은 존재
- 도커 이미지와 컨테이너
- 이미지는 운영체제와 소프트웨어를 담고 있는 컨테이너 실행 이전의 상태
- 이미지는 '리포지터리:태그'로 식별(레지스트리안에 리포지터리)
-->운영체제로 치면 이미지는 실행파일, 컨테이너는 실행파일로 만들어진 프로세스
'Programmer > Cloud' 카테고리의 다른 글
[Docker] 5 컨테이너 API (0) | 2021.08.13 |
---|---|
[Docker] 4 도커 활용과 컨테이너 (0) | 2021.08.13 |
[Docker] 3 도커 환경 구축 & 명령어 (0) | 2021.08.12 |
[Docker] 1-2 클라우드와 컨테이너 (0) | 2021.08.12 |
[Docker] 1-1 클라우드와 컨테이너 (0) | 2021.08.11 |