코드스테이츠_국비교육/[Section4]

74.01_[Cloud] 배포 컨테이너_Docker 개요_22.12.06

생각없이 해도 생각보다 좋다. 2022. 12. 7. 00:06

>컨테이너
:물자를 싣고 나르는데 획기적인 변화를 가져다줌.
: 인력과 시간 단축이 가장 큰 이점.
: 컴퓨터에서도 컨테이너라는 것은 같은 의미를 뜻함.

>리눅스 컨테이너, lxc
: 소프트웨어의 수송, 즉 배포에 컨테이너 개념을 적용한 기술
: 하지만 애플리케이션을 컨테이너화 시키는 방법에 대한 커뮤니티가 부족했음.

>Docker
: Docker Hub라는 소프트웨어 저장소와 함께 컨테이너 개념을 적용함.

>`컨테이너 방식으로 애플리케이션을 실행한다.`
: 다른 말로는 애플리케이션 실행이 실행 환경, 예를 들면 OS같은,에 구애받지 않는다는 의미이다.
: 컨테이너 방식을 이용한 기술의 대표적인 장점.

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

>프로그램간 의존 관계
: 프로그램 A 실행을 위해서는 프로그램 B가 필수적이다.
: 이같은 경우, 프로그램 A는 프로그램 B에 의존 관계를 갖고 있다고 표현한다.

>의존성 충돌
: 프로그램 A 1.0 은 프로그램 C 4에 의존 관계를 갖는다.
: 프로그램 B 3.1 은 프로그램 C 3에 의존 관계를 갖는다.
: 이처럼 프로그램 A 1.0, 프로그램 B 3.1을 사용하기 위해서는 프로그램 C가 필요하지만 각각의 프로그램이 필요로하는 프로그램 C의 버전이 여러개인 경우가 있을 수 있다. 이런 경우 여러 버전의 동일한 애플리케이션을 설치할 수 없으므로 프로그램 A 혹은 프로그램 B 중 하나는 제대로 된 실행을 보장할 수 없다. 이런 경우 의존성이 충돌한다고 표현한다.
: 컨테이너 기술로 이를 해결할 수 있다.
: 컨테이너 기술을 이용하여 하나의 컴퓨터에도 프로그램 C4와 프로그램 C3을 모두 설치할 수 있다. 이는 각각의 컨테이너는 격리되어있기 때문이다.

>컨테이너가 독립적으로 소유하는 요소
1. 프로세스
: 특정 컨테이너에서 작동하는 프로세스는 해당 컨테이너에서만 액세스할 수 있으며, 다른 컨테이너의 프로세스에 영향을 줄 수 없다.
2. 네트워크
: 기본으로 컨테이너 하나당 하나의 IP 주소가 할당된다.
3. 파일 시스템
: 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있기 때문에 해당 컨테이너에서 사용하는 명령이나 파일 등의 액세스를 제한 할 수 있다.

>컨테이너와 가상 머신(VM)
: 비슷한 기술이다. 하지만 가상 머신과 다르게 컨테이너는 각각의 컨테이너에 OS를 포함하지 않는 등 차이가 있다.
: 후에 추가 설명