도커(Docker)란?

citron03·2022년 2월 19일
0
  • 컨테이너는 소프트웨어 배포를 간편하고 빠르게 해준다.
    🍝 또한, 실행 환경에 구애받지 않고 프로그램을 실행할 수 있게 해준다.
  • 컨테이너 기술은 하나의 컴퓨터 내부에 여러개의 컨테이너 환경을 만들고, 이를 통해서 각각의 어플리케이션 환경을 격리한다.
  • 어플리케이션을 쉽게 컨테이너화시키는 대표적인 생태계가 Docker Hub이다.

🍖 특정 컨테이너 내부의 프로세스는 기본적으로 그 컨테이너에서만 접근할 수 있고, 컨테이너 내부에서 실행되는 프로세스는 다른 컨테이너의 프로세스에 영향을 끼칠 수 없다.
🍗 기본적으로 컨테이너마다 각각 IP주소가 할당된다.
🥩 컨테이너 내부에서 사용되는 파일 시스템은 구획화되어 있고, 따라서 해당 컨테이너에서의 명령이나 파일 등의 접근을 제한할 수 있다.

컨테이너 방식의 장점

  • 의존성 충돌 문제를 해결해준다.
    🥛 컨테이너에서 실행되는 어플리케이션은 어떤 의존성도 공유하지 않고, 각자의 고유한 의존성을 포함한다.

  • 개발과 배포 환경을 일치 시킨다.
    🍸 도커를 사용하면, 운영체제에 상관없이 간편하게 어플리케이션 실행환경을 만들 수 있고, 컨테이너 위에서 개발을 진행하면 모든 개발팀이 동일한 환경에서 개발을 할 수 있게 된다.

  • 더 손쉽게 배포할 수 있게 해준다.
    🥧 AWS EC2에 도커를 설치하거나, 도커 컨테이너를 EC2에서 실행할 수 있게 해주는 서비스인 ECS를 통해서 쉽게 어플리케이션을 배포할 수 있다.

  • 수평 확장을 쉽게 해준다.
    🥃 트래픽의 증가로 서버를 증설할 때, 컨테이너를 통하여 실행 환경을 일치시킬 수 있다.

  • 각 서버에 새로운 내용을 배포하기 쉽게 해준다.

Docker Image

  • 이미지는 어플리케이션 및 그 구성을 함께 담아놓은 탬플릿이다.
  • 실행되는 모든 컨테이너는 이미지로부터 생성된다.
  • 기존 이미지를 변경하여 다른 이미지를 만들 수도 있다.

🍊 레지스트리는 이미지가 저장되는 곳으로, Docker Hub, Amazon ECR와 같은 이미지 레지스트리가 있다.
🍊 새로운 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 없으면, 기본 레지스트리로부터 다운 받는다.

Docker Compose

  • Docker Compose를 사용하면, YAML 파일 하나와 명령어 하나로 모든 어플리케이션 실행 환경을 구성할 수 있다.

🫐 컨테이너와 Virtual machine은 언뜻 보기에 비슷해 보이지만, 큰 차이점이 있다.

🫐 각각의 VM에는 각자의 OS가 설치되어야하는 반면, 컨테이너는 호스트의 OS의 커널을 공유한다.

참고 자료 : 코드 스테이츠

profile
🙌🙌🙌🙌

0개의 댓글