[CS지식의 정석] 컨테이너(container)와 도커(docker)

박두팔이·2023년 8월 14일
0

CS컴퓨터과학

목록 보기
7/13

컨테이너

컨테이너란, 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 모든 종속성(환경설정)을 패키징 하는 소프트웨어 표준 단위다.

  • 컨테이너는 OS를 공유하기 때문에 빠르고 경량화 되어있으며 격리성도 뛰어나다는 장점이 있지만, OS에 문제가 생기면 다른 앱에도 영향을 미칠 수 있다는 단점이 있다.
  • 기존 가상머신배포방식 에서 업그레이드 된 형태라고 할 수 있다. 아래의 그림을 보면 오른쪽의 그림은 Jypervisor(하이퍼바이저) 위에 Virtual Machine과 각각의 OS를 설치하는 형태를 가지고있는 반면 왼쪽의 그림은 AppA,B,C... 등으로 패키징 되어있다. 이 단위를 컨테이너라고 하는 것이다.
  • 이러한 방식이 등장하게 된 것은, 개발자들이 coding을 하는 것보다 더 어려워하는것이 환경설정이었다. 같은 OS임에도 불구하고 동일하게 설치가 되지 않는상황이 자주 발생되었다. 따라서 OS를 포함한 종속성을 갖는 모든 프로그램을 하나의 컨테이너 단위로 묶어 배포하여 이 문제를 해결했다.

도커

도커란, 컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼이다. 애플리케이션을 구동할 때 필요한 환경설정 절차를 도커파일에 작성하고 빌드하면 도커이미지가 생성이 되고 이 이미지를 실행시키면 도커컨테이너가 만들어진다.

도커는 다음과 같은 과정을 거쳐 컨테이너를 만든다.

  1. 도커파일 : 패키지, 환경변수설정 등을 기록한 파일이다. 이를 빌드해 도커이미지로 변환한다. (= 단지, 글)

  2. 도커이미지 : 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변하다. 하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와는 무관하게 이미지는 그대로 존재한다. (= 이미지)
    ex) 1대의 서버에 환경설정해야 한다면 미리 만들어 놓은 이미지를 다운받아서 이를 통해 컨테이너만 만들면 끝!

  3. 도커컨테이너 : 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원(RAM,CPU,SSD 등)과 연결된다.

profile
기억을 위한 기록 :>

1개의 댓글

comment-user-thumbnail
2023년 8월 14일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기