도커 1주차

ggomadev·2024년 4월 17일
0

도커

목록 보기
1/5
post-thumbnail

도커?

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
    컨테이너를 사용해 응용 프로그램을 더 쉽게 개발, 배포, 실행할 수 있도록 설계된 도구
  • 컨테이너(Container): 물건을 넣고 운송수단으로 옮기는 것과 같이 프로그램을 이동, 배포 및 관리해줌.
  • 컨테이너 이미지(Container Image): 응용 프로그램을 실행하는데 필요한 모든 것(코드, 시스템도구, 라이브러리 설정 등)을 포함하는 실행가능한 소프트웨어 패키지.
  • 클라이언트-서버(Client-Server) 모델을 구현한 애플리케이션

도커 엔진(Docker Engine)

  • 컨테이너를 구축하고 실행하는 기본 핵심 소프트웨어

도커 탄생 배경

  • 과거에는 하나의 서버하나의 애플리케이션이 동작(서버에서 여러 개의 애플리케이션을 실행시키는 기술 미비했기에) -> 새 애플리케이션 개발할 때마다 서버 구입 필요 OR 남는 서버 존재(안정적 but 비효율)
  • 하이퍼바이저 등장: 다수의 게스트 OS를 구동할 수 있는 소프트웨어. 하드웨어를 가상화하면서 하드웨어와 각각의 vm을 모니터링. 하나의 운영체제 위에 여러 OS 실행시켜 하나의 vm마다 고유한 OS가 필요하며, CPU, RAM 등의 리소스 소비, 라이센스 이슈 등의 단점 존재
  • 대형회사들은 컨테이너 기술을 사용하게 됨.
  • 컨테이너 모델: 단일 호스트의 모든 컨테이너는 호스트의 OS를 공유함. 시스템 리소스 확보, 빠른 속도, 휴대성 등의 장점

도커 클라이언트(Docker Client)

  • 사용자가 도커와 상호작용하는 기본방법, Docker CLI
  • docker run 클라이언트가 도커 데몬으로 보내 실행토록함.

도커 데몬(Docker Daemon, dockerd)

  • 도커 호스트에서 실행되는 백그라운드 프로세스
  • CLI에서 실행하는 명령어를 받아들이고, 도커 이미지를 다운로드, 컨테이너 실행 및 관리 등 도커 객체 관리
  • 문제 발생시 도커 호스트에서 컨테이너 실행할 수 없음.

기타

  • 도커 데몬으로 보내서 실행시키고 싶다면
    docker run _ex. docker run hello-world
    -> 커맨드 입력시 클라이언트에서 도커 서버로 요청 보내짐
    -> 서버는 hello-world가 로컬에 cache 되어있나 확인
    -> 없을 경우 Docker Hub에 가서 이미지를 가져오고 로컬에 보관
    -> 이후에는 해당 이미지를 이용해서 컨테이너 생성 및 실행
  • 내가 설치한 도커는 어디에 있나?
    which docker ex. /usr/local/bin/docker
  • 도커 버전에 대해서 알고 싶다면?
    docker version

0개의 댓글