Docker 개념

황준하·2023년 2월 28일
0

Docker

도커: 데이터나 프로그램을 독립된 환경에 격리시키는 기능

리눅스 OS -> 도커 엔진 -> 이미지 -> 컨테이너 생성

격리가 필요한 이유

  • 하나의 프로그램을 실행시키는데 라이브러리(연동 프로그램 등)의 의존성이 충돌하는 경우

    • A 프로그램은 라이브러리 6.5 버전을 필요로 하지만

    • B 프로그램은 라이브러리 5보다 낮은 버전을 필요로 할 경우

    • 프로그램 하나는 사용하지 못하게 된다. [라이브러리가 설치된 환경(OS)이 같은 곳이기 때문]

도커 VS 가상화

  • 가상화는 CPU, 메모리 등의 기능을 소프트웨어로 대체해 동작하게 하는 것

  • 도커는 운영 체제 기능 일부를 호스트 서버 운영체제에게 맡기는 형식 (커널 역할을 호스트가 하기 때문에 도커가 가벼워질 수 있었음)



컨테이너는 자유롭게 옮길 수 있다

  • 정확히는 컨테이너를 내보낸 후, 도커 엔진이 이를 복원하는 형태

  • 이를 이용하면, 물리적 서버가 달라도 똑같은 환경으로 실험을 할 수 있음.

컨테이너 생애주기

  • 컨테이너는 쓰고 버리는 일회용품

    • 컨테이너를 일일이 업데이트하려면 유지보수 측면에서 힘들어질 것이다.

    • 그러므로, 오래된 컨테이너를 버리고 새로운 이미지로 갈아타는 방식을 사용한다.

  • 이렇게 되면 데이터 백업에 대한 문제가 생긴다.

    • 이 부분은 물리적 서버(호스트)의 디스크를 마운트해서 저장하면 된다. (저장 공간은 외부와 공유할 수 있는 것)
  • 하나의 컨테이너에 하나의 프로그램

    • 위에서 말한 격리가 필요한 이유와 같은 상황을 막기 위해 하나의 컨테이너에 하나의 프로그램을 많이 쓴다고 한다.

    • 여러 프로그램을 한 번에 쓰는 것도 물론 가능하다.

0개의 댓글