。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

강의/DevOps-Docker

[DevOps-Docker] 3. 도커의 동작 원리 //3. 도커 컨테이너의 생애주기와 데이터 저장

quarrrter 2023. 9. 11. 00:45

1. 도커 컨테이너 생애주기

2. 도커 데이터 저장

3. 도커의 장단점

4. 도커 이미지 종류

 


1. 도커 컨테이너 생애주기

도커 컨테이너는 "쓰고 버리는" 일회용품

-> 오래된 컨테이너를 버리고 새로운 이미지로부터 새로운 컨테이너를 만들어 갈아타는 방식 (계속 업데이트)

-> 도커 허브에서 이미지를 다운 받고 계속 업데이트 

 

컨테이너를 만들고(create) -> 실행하고 (run) -> 종료하고(stop) -> 폐기(rm)

 

 

2. 도커 데이터 저장

도커가 설치된 물리적 서버(호스트pc)의 디스크를 마운트해 데이터를 저장

컨테이너가 있어도 데이터를 별도로 관리.

운영체제 + 소프트웨어 -> 컨테이너 형태

 

 

도커구조와 성질

* 환경을 격리할 수 있다.

1. 독립된 환경

- 프로그램을 여러개 띄울 수 있다.

2. 이미지를 만든다

- 이미지 저장(도커 레지스트리(도커허브))

- 이미지를 내려 받고 교체하기 쉬움, 업데이트가 쉽다.

- 이동이 편리하고 똑같은 컨테이너를 쉽게 만들 수 있어 개발환경을 배포하기 쉽다.

3. 컨테이너에 커널을 포함시킬 필요가 없다(커널이 없다)

- 가볍다.

-배포판을 바꿀 수 있다. 

 

 

3. 도커의 장단점

장점

● 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다.

- 커널이 포함되지 않으므로 물리 서버의 운영체제에 의존

- 가상화 기술에 비해 압도적으로 가벼움.

- 하이퍼바이저와 게스트 OS가 없기 때문에 가벼움

  서버 관리가 용이

- 각 소프트웨어를 독립된 환경에 격리해 운영

- 컨테이너 교체나 수정이 쉬움

서버 고수가 아니어도 다루기 쉬움 

 

단점

  리눅스용 소프트웨어밖에 지원하지 않음

  호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 줌

  컨테이너 하나를 장기간에 걸쳐 사용할 때는 그리 큰 장점이 없음 

 

도커의 주 용도

  팀원 모두에게 동일한 개발환경 제공

  새로운 버전의 테스트(격리된 환경을 이용)

  동일한 서버가 여러 대 필요한 경우

 - 명령 한 줄로 서버를 필요한 만큼 띄울 수 있고, (운영체제 & 소프트웨어 설치)하는 단순 업무를 반복할 필요 없음 

 - 스케일링에 유리(필요할 때 늘리고 삭제하는)

 

 

4. 도커 이미지 종류

도커 이미지 - 리눅스 운영체제 

●  ubuntu, centos, debian, fedora, busybox, alpine (모두 리눅스 운영체제)

●  도커 허브에서 소스 복사해서 쉘에서 pull

●  다운 받으면 image에서 확인 가능 

 

도커 이미지 - 웹서버/데이터베이스 서버

● httpd(Apache), nginx, / mysql, postgres(PostrgreSQL), mariadb

● pull 할 수도 있지만 run으로 바로 실행 가능(웹브라우저에서 포트 접속하면 작동하는 것 확인 가능)

 

도커 이미지 - 프로그램 실행을 위한 런타임과 그외 소프트웨어

● openjdk(자바런타임), python, php, ruby, perl, gcc, node, registry(도커레지스트리), wordpress, nextcloud, redmine

docker run으로 이미지 가져올 수 있음 

pc에서 컨테이너로 파일을 보낼 수 있고 실행 시킬 수 있음 

 

초기 도커: 리눅스의 이미지만 실행하는 형태

0.9.0 libcontainer 기술을 통해 현재 형태를 갖추게 되어 runC 1.11.0으로 발전함.