-
1. 컨테이너
Docker를 통하여 실행에 있어서 어떠한 영향도 받지 않고 프로그램을 실행시킬 수 있게 만들어준다.
Docker는 컨테이너 방식을 기반으로 한다.
각각의 컨테이너는 독립적으로 실행 환경을 구성하여 어떠한 환경에서도 프로그램이 실행될 수 있도록 만들어준다.
컨테이너는 다음 3가지의 자원을 독립적으로 소유한다.
1. 프로세스
- 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너에서만 엑세스 할 수 있다.
- 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.
2. 네트워크
- 기본으로 컨테이너 하나에 하나의 IP 주소가 할당된다.
3. 파일 시스템
- 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있다. 그래서 해당 컨테이너에서의 명령이나 파일 등의 엑세스를 제한할 수 있습니다.
2. 컨테이너 방식의 장점
1. 의존성 충돌 문제를 해결해준다.
2. 개발과 배포환경을 일치시킨다.
3. 수평확장을 쉽게 해준다.
4. 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다.
3. 도커 핵심 키워드
컨테이너
애플리케이션의 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자
이미지
실행되는 모든 컨테이너는 이미지로 생성. 이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아 놓은 템플릿으로, 이를 이용해 즉 컨테이너를 만들 수 있다. 이미지를 이용해 여러 개의 컨테이너를 생성할 수 있다. 이를 이용해 애플리케이션의 수평 확장이 가능하다.
이미지는 기본 이미지로 부터 변경 사항을 추가/커밋해서 또 다른 이미지를 만들 수 있다. 예를 들어 node.js로 작성된 애플리케이션을 이미지로 만들고 싶은 경우, nodejs 이미지를 기본 이미지로 삼고 내가 만든 애플리케이션을 추가해 넣고, 이미지화 할 수 있다.
레지스트리
이미지는 레지스트리에 저장된다. 대표적인 이미지 레지스트리로는 Docker Hub, Amazon ECR이 있다. 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리로부터 다운로드 받게 된다.
'개발학습 > 코드스테이츠 SE Bootcamp' 카테고리의 다른 글
[First Project] 개발 회고록_01 (0) 2021.11.09 코드스테이츠 SEB 섹션 3 후기 (0) 2021.11.08 SEB 섹션3 - 10 TIL : 배포 AWS (1) (0) 2021.10.31 SEB 섹션3 - 9 TIL : Git 브랜치 관리 (0) 2021.10.28 SEB 섹션3 - 8 TIL : 네트워크 심화 (0) 2021.10.28 댓글