[Cloud] Docker 배포 컨테이너

YuLim·2023년 2월 2일
1

💻 컨테이너 기술과 Docker

✔ 컨테이너 기술

소프트웨어 수송, 즉 배포에 사용합니다.
쉽게 애플리케이션을 포장하고, 컨테이너 방식으로 실행할 수 있습니다.
실행 환경에 구애받지 않고 애플리케이션을 실행할 수 있습니다.

장점

  • 의존성 충돌 문제 해결
    • 개발과 배포 환경 일치시킴
    • 수평 확장을 쉽게 해줌
    • 각 서버에 새로운 내용을 배포하기 쉽게 만듦

✔ 의존성 충돌 문제 해결

프로그램A의 실행에 다른 프로그램B가 반드시 필요할 때, 프로그램A는 프로그램B에 의존 관계를 갖고 있다고 합니다.

의존성 충돌 : 프로그램K와 프로그램H가 각각 필요한 프로그램T의 버전이 다를 경우(일반적으로 한 컴퓨터에 여러 버전의 동일한 애플리케이션은 설치 되지 않는다.)

컨테이너 기술은 애플리케이션을 컨테이너 내에 구성합니다.
컨테이너에서 실행 중인 애플리케이션은 각각 고유의 의존성을 갖고 있게 됩니다.
-> 즉, 각 컨테이너 애플리케이션 실행 환경 격리

컨테이너가 격리하여 독립적으로 소유하는 자원

  • 프로세스
  • 네트워크
    • 기본적으로 컨테이너 하나에 하나의 IP주소 할당
  • 파일 시스템
    • 컨테이너 안에서 사용되는 파일 시스템은 구획화됨

✔ Docker

✔ 개발과 배포 환경 일치시킴

  • OS에 상관없이 즉시 애플리케이션 실행 환경을 만들 수 있음
  • 개발을 컨테이너 위에서 진행할 경우, 모든 개발팀이 동일한 환경 하에 개발을 진행할 수 있음

서버도 이제는 컨테이너에 담긴 애플리케이션을 실행하는 방식으로 서비스를 제공합니다.
애플리케이션 배포 방법

  • 방법 1. AWS EC2에 도커 설치
  • 방법 2. AWS EC3에서 ECS이용
    • ECS : 애플리케이션을 도커 컨테이너 째로 배포할 수 있게 해줌

✔ 수평 확장을 쉽게 해줌 & 각 서버에 새로운 내용을 배포하기 쉽게 만듦

  • 트래픽 분산을 위해 프록시 서버를 운영하며, 프록시 서버는 여러 대의 동일한 서버 중 한 서버를 이용할 수 있도록 돕습니다. -> 리버스 프록시(로드밸런서)
    즉, 많은 트래픽으로 인한 서버 증설에 컨테이너 기술로 실행 환경을 일치할 수 있습니다.

  • 이러한 기술의 응용으로 새로운 버전의 애플리케이션을 서버 중 몇 대에만 운영하여 테스트하는 방법도 가능합니다.

✔ 키워드

  • 컨테이너

    • 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자
  • 이미지

    • 실행되는 모든 컨테이너는 이미지로부터 생성
    • 애플리케이션 및 애플리케이션 구성을 함께 담아놓은 템플릿
    • 이미지를 이용해 즉시 컨테이너를 만들 수 있음
    • 기본 이미지(base image)로 변경 사항을 추가해서 또 다른 이미지 생성 가능 (마치 Git을 사용하는 것처럼)
  • 레지스트리

    • 이미지는 레지스트리에 저장
    • Docker Hub, Amazon ECR등이 있음 (마치 GitHub, GitLab 처럼)

✔ 컨테이너와 VM 비교

추가중...


도커 CLI 명령어, 옵션 등 사용법 확인 Doker docs
Docker docs : https://docs.docker.com/engine/reference/commandline/container_run/

profile
개인 공부 기록장

0개의 댓글