본문 바로가기
DevOps/Docker

Docker의 LifeCycle과 데이터 저장

by 김승원이 2024. 3. 15.

Docker Container의 LifeCycle

도커 컨테이너는 쓰고 버리는 일회용품같은 존재이다. 이 의미는 오래된 컨테이너를 버리고 새로운 이미지로부터 새로운 컨테이너를 만들어 갈아타는 방식을 사용한다.

Docker Container의 생애주기

  1. CREATE 컨테이너를 만든다.
  2. RUN 실행한다.
  3. STOP 종료한다.
  4. RM 폐기한다.

Container의 데이터는 별도로 저장!

이런 일회성으로 사용되는 Container는 데이터 저장의 부분에서 불합리한 구조이다. 쓰고 버리기 때문에 데이터가 휘발되기 때문이다.

그래서 Docker가 설치된 물리적 서버에 Disk를 Mount해 데이터를 저장한다. 이를 통해 후에 새로운 Container가 생성되어도 새로운 Container도 똑같이 연결되기 때문에 실질적인 데이터는 별도의 저장공간에 저장된다.

 

 

Docker의 구조(환경을 격리)와 성질

  1. 독립된 환경을 제공한다.
  2. 이미지를 만들어준다.
  3. 커널이 없다.

만들어진 Image는 Docker 레지스트리에 저장된다. 이런 이미지는 레지스트리를 통해 쉽게 업데이트할 수 있다.

 

 

Docker의 장점

  1. 한대의 서버에 여러 대의 물리 서버를 띄울 수 있다.
    1. 컨테이너에는 커널이 포함되지 않아 물리서버의 운영체제에 의존한다.
    2. 소프트웨어적으로 하드웨어를 재현하는 가상화 기술에 비해 압도적으로 가볍다.
    3. 하이퍼바이저와 게스트 OS가 없기 때문에 가볍다.
  2. 서버 관리에 용이하다.
    1. 각 소프트웨어를 독립 환경에 격리해 운영한다.
    2. 컨테이너 교체나 수정이 굉장히 빠르고 쉽다.
  3. 서버 고수가 아니어도 쉽게 원하는 환경을 구성하고 다룰 수 있다.

 

Docker의 단점

  1. Linux 기반이기 때문에 Linux용 소프트웨어만 지원한다.
  2. 호스트 서버에 문제가 생기면 모든 Container에 영향을 준다. 물리적인 서버에 문제가 생기면 그 위에서 작동하는 Docker와 Container에 영향이 간다.
  3. Container 하나를 장기간에 걸쳐 사용할 때는 그리 큰 장점이 없다.

 

Docker의 주 용도

  1. 팀원 모두에게 동일한 개발환경을 제공해줄 수 있다.
  2. 새로운 버젼 테스트(격리된 환경을 제공한다.)
  3. 동일한 서버가 여러 대 필요한 경우(컨테이너 밖과 독립된 성질을 이용)
    1. 명령 한 줄이면 서버를 필요한 만큼 띄울 수 있다.
    2. (운영체제 설치 + 소프트웨어 설치) 하는 단순 반복 업무를 할 필요가 없다.
    3. 스케일링에 유리하다.

Docker Linux 운영체제 Image

Docker Web, Database Server Image

Docker 프로그램 실행을 위한 런타임과 그 외의 소프트웨어 Image

 

'DevOps > Docker' 카테고리의 다른 글

복수 Container 연동하기  (0) 2024.03.15
Container 실행방법  (0) 2024.03.15
Docker Hub와 Image, Container  (0) 2024.03.15
Docker의 동작 원리  (0) 2024.03.15
NCP ubuntu에 Docker 설치하기  (1) 2024.03.15