도커의 동작 원리
도커의 구조
컨테이너/컨테이너/컨테이너(내부에는 리눅스 OS에서 커널 space을 제외한 user space이 있음)
|
도커 엔진
|
리눅스 운영체제
|
서버 컴퓨터
운영체제가 하는 일
소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할
운영체제는 ‘커널’과 그 외 부분으로 구성된다.
책에서는 간단하게 커널과 그 외 부분이라고만 적으셨는데, 프로세스가 돌아가며 응용 프로그램을 실행시키는 공간이라고 알면 된다.
User mode에서 시스템 콜을 이용해 kernel mode로 바뀐다.
운영체제 다시 공부해야할듯..
프로그램을 커널에 전달하고, 커널이 하드웨어를 다룬다.
도커에서는 소프트웨어가 리눅스의 주변 부분에 명령을 전달하고, 이 것이 도커 엔진과 호스트 컴퓨터의 커널에 전달하여 실행한다.
도커 허브와 이미지, 그리고 컨테이너
이미지: 컨테이너의 설계도, 금형
이미지로 컨테이너를 만들 수 있지만, 컨테이너로 이미지를 만들 수 있다.
이미지로부터 컨테이너를 만들고, 이미지를 익스포트한 후 그 이미지로 다른 환경에서 컨테이너를 복원할 수 있다.
=> 도커 엔진 간에 이동이 가능하다.
도커 허브와 도커 이미지
이미지는 주로 ‘도커 허브’에서 구할 수 있다.
도커 허브란? 공식적으로 운영되는 도커 레지스트리(도커 이미지르 배포하는 서비스)의 이름이다.
안전한 이미지를 고르는 법
- 공식 이미지 사용
- 커스텀 이미지 직접 만들기
도커의 생애주기와 데이터 저장
컨테이너 하나를 업데이트하면서 계속 사용하기보다는, 업데이트된 소프트웨어가 들어있는 새로운 컨테이너를 사용하는 것을 권장
여러 개의 컨테이너를 하나하나 업데이트하는 것은 비효율적
컨테이너의 생애주기
생성→실행→종료→폐기→재생성
데이터 저장
도커가 설치된 물리적 서버(호스트)의 디스크를 마운트해 이 디스크에 데이터를 저장
마운트란? USB나 HDD를 연결하는 것 처럼, 디스크를 연결해 데이터를 기록할 수 있도록 한 상태
도커의 장점과 단점
도커의 성질
- 독립된 환경
- 이미지 생성 가능
- 컨테이너에 커널 불필요
도커의 장점
‘여러 개’, ‘이동성’, ‘생성’, ‘보안’
- 한 대의 물리 서버에 여러 대의 서버 생성 가능
- 안전한 상태로 실행
- 원래는 불가능한 조합 (같은 소프트웨어 여러 번 실행) 가능
- 컨테이너에 커널이 포함되지 않으므로 가벼움
- 서버 관리 용이
- 독립된 환경이므로 다른 소프트웨어에 영향 x
- 항상 최신 상태로 유지 용이
- 환경 이전도 간단함
- 서버 초보 친화적
- 명령어만 입력하면 끝..!
도커의 단점
- 리눅스만 사용 가능
- 물리 서버 한 대에 여러 대의 서버를 띄우므로, 호스트 서버에 문제 생기면 모든 컨테이너에 영향
- 가상화 기술, 가상화 플랫폼도 마찬가지지만, 하나의 물리 서버에 하나의 기능을 띄우는 것과 비교하면 피해 범위가 커짐
- 컨테이너를 여러 개 사용해야 장점 느끼기 쉬움
도커의 용도
- 팀원 모두에게 동일한 개발환경 제공
- 새로운 버전 테스트
- 동일한 서버가 여러 대 필요한 경우
'개발 공부 > 인프라' 카테고리의 다른 글
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch6 - 실전에 활용 가능한 컨테이너 사용법을 익히자 (1) | 2025.01.07 |
---|---|
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch5 - 여러 개의 컨테이너를 연동해 실행해보자 (0) | 2025.01.06 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch4 - 컨테이너를 실행해 보자 (0) | 2025.01.05 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch3 - 도커를 사용해보자 (0) | 2025.01.05 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch1 - 도커란 무엇인가? (0) | 2025.01.05 |