본문 바로가기
Docker

[Docker] 도커에 대한 기본 이해

by ghan2 2024. 11. 22.

 

https://www.google.com/url?sa=i&url=https%3A%2F%2Fvelog.io%2F%40songsunkook%2F%25EB%258F%2584%25EC%25BB%25A4Docker%25EB%259E%2580&psig=AOvVaw3ug0autf1XQCmSZYS7ohtK&ust=1732341219613000&source=images&cd=vfe&opi=89978449&ved=0CBQQjRxqFwoTCJC86Yug74kDFQAAAAAdAAAAABAE

 

 

 

 

도커는 리눅스 컨테이너로부터 시작된 기술이다.

리눅스 커널에 있는 LXC 기술을 사용해서 만드는 것이다!

 

초기 도커는 LXC 기술을 기반으로 구현되었으나,

최근에는 별도 컨테이너 기술을 구현하여 사용하고 있다. 

 

 

 

Docker 주요 구성 요소

1. 도커 엔진 (Docker Engine)

  • 도커는 서버/클라이언트 구조로 이루어진다.

1) 서버는 docker daemon process(데몬 프로세스) 형태로 동작한다.

2) docker daemon process 에 요청하기 위해, 프로세스간 통신 기법이 필요하며, 도커는 이를 위해 Rest API를 사용한다.

3) docker command는 일종의 클라이언트라고 이해하면 됨. 

  • 도커 커맨드를 내리면 결국 내부적으로 Rest API를 사용해서 docker daemon process를 호출하는 방식
  • 예시) docker ps 라고 명령하면, 내부적으로는 마치 다음 명령처럼 rest api를 호출함
    • http GET 'docker daemon process' /api-version/containers

2. 도커 이미지

  • 도커 컨테이너를 생성하기 위한 명령들을 가진 템플릿(스크립트)
  • 여러 이미지들을 layer로 쌓아서, 원하는 형태의 이미지를 만드는 것이 일반적
    • 예시) 우분투 이미지에, 아파치 웹서버 이미지를 얹어서 웹서버 이미지를 만듦

3. 도커 컨테이너

  • 도커 이미지를 가지고 실행을 해서 동작을 하는 것
  • 도커 이미지가 리눅스 컨테이너 형태로 실행한 상태를 의미
  • docker daemon에 있는 커널에서 LXC로 리눅스 컨테이너를 생성한 후에 컨테이너에 도커 이미지에 포함된 명령을 실행하여 도커 컨테이너를 만들고 실행함
  • 도커 컨테이너는 분리된 공간이므로, 도커 데몬 프로세스를 통해 접속할 수도 있고, 내부에 들어가서 코드 수정, 재실행 등도 가능함.

 

 


참고

[인프런] 풀스택을 위한 도커와 최신 서버 기술

'Docker' 카테고리의 다른 글

[Docker] Docker Compose 기본 포맷  (0) 2024.11.23