코드코코

[Docker] [도커 기본 개념] Dockerfile, Dockerhub, container, image , Docker Demon 본문

기록/Docker

[Docker] [도커 기본 개념] Dockerfile, Dockerhub, container, image , Docker Demon

코드코코 2022. 6. 2. 16:15

Dockerfile

- 서버 운영 기록을 코드화한 것

Docker image

- 운영 기록을 실행한 시점(도커 파일 + 실행 시점)

Dockerhub

- 도커 허브는 도커에서 제공하는 기본 이미지 저장소

- ubuntu, centos, debian 등의 베이스 이미지와 python, java 등의 공식 이미지 등을 제공.

 

Docker Container

- 애플리케이션 소스 코드를 임의의 환경에서 해당 코드의 실행에 필요한 운영체제 라이브러리 및 종속 항목과 결합하는 실행 가능한 표준 컴포넌트

  • 호스트 컴퓨터에서 돌아가고 있는 하나의 Application 프로세스
  • 호스트 컴퓨터와 그 위에서 돌아가는 다른 프로세스들과 격리되도록 설계 됨. (효율성과 보안성) - cpu , memory, network 등
  • 격리된 환경에서 개발 환경의 통일성을 갖추기 위해 사용
  • 다양한 서버에서 버전 통일성을 갖추기 위해 코드와 환경 모두 하나의 컨테이너로 묶는 역할

 

Docker Image

- 컨테이너 실행에 필요한 파일과 설정 값들을 포함하고 있는 것

  • 애플리케이션 코드와 애플리케이션 실행에 필요한 최소한의 환경(언어 런타임, 라이브러리 패키지 등)을 포함하고 있는 바이너리 파일
  • 하나의 이미지로 동일한 Container 를 계속 만들어낼 수 있고, Docker Hub 와 같은 네트워크 상의 Doker registry 를 통해 손쉽게 공유 가능
  •  uuid로 저장
  • 여러개의 레이어로 구성될 수 있음
  • image들의 조합이 하나의 container image가 됨.
  • Image 종류
    1. Interactive (결합)
      • 이미 존재하고 있는 도커 이미지를 활용해 컨테이너를 실행
      • 그 환경 위에 다가 새로운 것을 추가하고 이를 새로운 이미지로 바꾸는 것
    2. Dockerfile
      • Dockerfile이라는 새로운 형태의 텍스트 파일을 작성함으로써 Docker Image를 만드는 것

Container vs Image

  • Image는 container의 스냅샷(snapshot)을 떠놓은 것
  • 반대로 container는 컴퓨터에서 살아서 돌아가고 있는 image의 한 인스턴스(instance)

=> Docker Host : dockerd가 동작중

=> Docker Host(disk)에 Container images (file) 로 저장되어 있음(read-only)

=> Container images file 이 실행되면 dockerd 메모리위에 process running 됨, 이것을 container 라고 함.(read,write)

 

 

 

Docker Demon

- API 요청을 수신하고 이미지 ,컨테이너, 네트워크 및 볼륨과 같은 Docker 객체를 관리

 

Docker HOST(Linux Kernel)

- dockerd(docker demon)이 동작되고 있는 리눅스 커널이 있는 시스템

- 도커가 컨테이너를 실행할 수 있는 플랫폼을 만들어 놓은 것.

- dockerd 위에 컨테이너가 동작

- host 입장에서 container 는 하나의 동작되는 process

- container 끼리는 각각 isolate 됨.

 

 

 

학습영상 : https://www.youtube.com/watch?v=m454YTyPWSk&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=9

참고자료 : https://liebe97.tistory.com/3#toc-Container