본문 바로가기
부트캠프/백

Docker - container

by 티코딩 2023. 2. 3.

docker

도커의 사용은 아마도 실제로 사용할때나 다시 찾아봐야할것같다. 오늘 처음써봐서 헷갈리는건지 일단 하라는 건 다했는데, 어떻게 했는지는 잘 기억이 나지 않는다. 

그냥 오늘 배웠던 도커에관해 적어 봐야겠다.

 

     docker/whalesay:latest

  • docker라는 유저가 등록한 whalesay 이미지 혹은 레포지토리에서
  • latest 태그를 가진 이미지
  • 라는
  • 뜻.

 

 

ㅇ 컨테이너 기술

컨테이너 기술은 애플리케이션을 컨테이너 내에 구성한다. 컨테이너에서 실행중인 애플리케이션은 어떠한 의존성도 공유하지 않고 고유의 의존성을 포함함. 서로 다른 버전의 동일한 애플리케이션 존재가능함. 컨테이너는 수준높은 격리를 제공함.

컨테이너가 격리하는 것 —> 1. 프로세스 2. 네트워크 3. 파일 시스템

컨테이너는 가상 머신임. 하나의 호스트 컴퓨터 위에 여러개의 독립적인 컴퓨터가 작동할 수 있게 해주는 기술. 접근방법은 조금 다르지만 비슷한 수준의 격리성 제공함.

 

ㅇ 컨테이너 방식의 장점

의존성 충돌 문제를 해결해줌. -> 개발과 배포 환경을 일치시킨다. 수평확장을 쉽게 해준다. 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다.

 

ㅇ 개발팀의 문제 해결

여러 개발자가 하나의 애플리케이션을 만들기위해 비슷한 개발환경을 구축한다. 구축하는데 맞추기 굉장히 힘든데, 도커가 이걸 해결해준다. 도커가 실행되면, 어떤 운영체제든 명령어로 YAML파일하나, 명령어하나로 모든 애플리케이션 실행환경 구성이 완료됨.

 

ㅇ 배포 시의 문제 해결

웹 서비스의 배포란 어떤 애플리케이션이 특정 런타임 환경 위에서 실행되고, 사용자에게 이를 제공한다는 것인데, 이는 실행환경 구성과 다를것이 없다. 도커는 물자를 하나하나 실어 옮기는 방식이 아니라 컨테이너에 담긴 애플리케이션을 실행하는 방식을 가능하게 해준다.

 

ㅇ 실행 환경의 일치

구글 같은 대형 웹 서비스는 하나의 서버로 이용하게 하는 것이 아니라 트래픽 분산을 위해 프록시 서버를 운영하며, 프록시 서버는 여러대의 동일한 검색 서버중 한군데를 이용할 수 있도록 한다. 컨테이너 기술의 가장 큰 장점은 실행환경의 일치다. 더 많은 트래픽으로 인한 서버증설에 컨테이너 기술은 아주 효율적이다. 동일한 애플리케이션 구성으로 새로운 서버에 해당 애플리케이션을 컨테이너로 실행하고, 로드 밸런서(리버스 프록시)에 이 서버를 추가하면 된다.

 

— 정리 — 

컨테이너 - 애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자.

 

이미지 - 실행되는 모든 컨테이너는 이미지로 부터 생성됨. 이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아놓은 템플릿으로, 이를 이용해 즉시 컨테이너를 만들 수 있다.

이미지를 이용해 여러개의 컨테이너를 생성할 수 있다. 이를 이용해 수평확장이 가능함.

 

레지스트리 - 이미지가 저장되는 . 대표적으로 Docker Hub, Amazon ECR. 도커CLI 에서 이미지를 이용해 컨테이너를 생성할 , 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리로부터 다운로드 받게 .

 

asciiquarium 키려면, 터미널에서

docker container run -it --rm danielkraic/asciiquarium:latest

asciiuarium

움직이는 재밌는 이미지를 볼 수 있다!

'부트캠프 > ' 카테고리의 다른 글

Section3-3  (0) 2023.02.04
자동배포방식 - Pipeline  (0) 2023.02.04
Section3-2  (0) 2023.02.01
클라우드 컴퓨팅, AWS의 중요개념들  (1) 2023.02.01
Section3-1  (0) 2023.01.29