Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차] 섹션1, 2 내용 정리 #3

Open
ckkim817 opened this issue Nov 1, 2024 · 0 comments
Open

[1주차] 섹션1, 2 내용 정리 #3

ckkim817 opened this issue Nov 1, 2024 · 0 comments
Assignees
Labels

Comments

@ckkim817
Copy link
Member

ckkim817 commented Nov 1, 2024

실행 중인 컨테이너를 모두 삭제
docker rm -f $(docker ps -aq)

도커: 컨테이너를 관리하기 위해 만들어진 소프트웨어
컨테이너: 큰 서버를 효율적으로 나눠서 사용하기 위한 가상화를 하는 기술
가상화: 물리적인 컴퓨팅 환경 내부에 논리적인 컴퓨터 환경을 만드는 것
-> 논리적으로 격리된 환경을 만들어 엔터프라이즈 환경을 훨씬 안전하게 운영할 수 있음.

가상화 기술
Hypervisor vs Container

Hypervisor: 호스트 OS에 설치해 호스트 OS의 자원을 격리해 새로운 게스트 OS(가상머신)를 실행하고, 이 게스트 OS에서 실제 실행을 원하는 프로세스를 운영함.

커널: 하드웨어 리소스를 요청할 때 사용되는 중간 다리 역할
-> 커널에 시스템 콜이라는 사용 요청을 보내면 하드웨어에 대신 전달해 줌.

문제점: 게스트 OS의 커널은 실제 물리적 하드웨어가 없기 때문에 리소스를 사용하려면 호스트 OS의 커널에 리소스 사용을 요청해야 함. 이때, 호스트 OS와 게스트 OS의 종류가 다를 경우 호스트 OS가 게스트 OS로부터 전달받은 시스템 콜을 처리할 수 없음.
-> 하이퍼바이저가 이 기종 커널 간 요청을 전달함으로써 해결해 줌.

컨테이너 가상화: 가볍고 빠르다,
LXC (Linux Containers)라는 리눅스 커널 자체 제공 격리 기술을 통해 하이퍼바이저 없이도 논리적으로 격리된 공간을 만들 수 있음.
-> Namespace와 Cgroups라는 기능을 활용

Namespace: 리소스를 나누는 기준
Cgroups: 리소스 사용량을 배분하는 기술

Container: LXC 기술을 사용해 만들어진 격리된 공간

하이퍼바이저 문제점: 각각의 시스템 콜들이 하이퍼바이저의 통역을 거쳐가기 때문에 오버헤드가 커짐.
-> 컨테이너는 호스트 OS 커널을 그대로 사용하기 때문에 중간 단계를 생략함으로써 오버헤드가 적음.

컨테이너의 단점: 보안 측면에서 안좋음, 호스트 OS의 커널을 공유하기 때문에 호스트와 다른 종류의 OS는 실행할 수 없음.

컨테이너가 가볍고 빠르기 때문에 모던 애플리케이션의 요구사항을 충족하여 많이 쓰임.

도커: 커널의 컨테이너 가상화 기술을 편리하게 사용하기 위해 만들어진 소프트웨어(보조 도구), 컨테이너 플랫폼이라 불림.

도커도 클라이언트 - 서버 모델임.

  1. 명령어 실행
  2. 사용자 명령 전달
  3. 도커 데몬이 호스트 OS에서 컨테이너 관리
  4. 결과 전달

도커 CLI는 API 형식의 소통 방식을 수월하게 하기 위해 사용자 명령을 API에 맞추어 변환하고, 응답 JSON 역시 테이블 형태로 반환해 줌.

@ckkim817 ckkim817 changed the title 1주차 - 섹션1, 2 1주차 - 섹션1, 2 내용 정리 Nov 1, 2024
@ckkim817 ckkim817 changed the title 1주차 - 섹션1, 2 내용 정리 [1주차] 섹션1, 2 내용 정리 Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants