도커의 기본 개념
데이터 또는 프로그램을 격리시키는 기능
을 제공하는 소프트웨어- 주로 서버에서 사용됨
- 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공
- OS 비슷한 것을 통째로 격리한다.
컨테이너와 도커 엔진
- 도커엔진을 설치해야 사용가능
- 컨테이너
- 작은 방 처럼 독립된 환경을 제공한다.
- 내부에 데이터나 프로그램을 둔다.
다양한 이미지와 운영체제 관계
- 도커는 컨테이너를 생성하기 위해 해당 어플리케이션을 실행할 수 있는
이미지
가 필요하다- 이미지는 컨테이너의
빵틀
과 같은 역할을 수행하고,- 필요한 라이브러리 . 실행파일 등을 포함
- ex
- 아파치 서버 동작을 위해
- 아파치 이미지
- MySQL DB를 실행하기 위해
- MySQL 이미지 사용
- 이미지는 ISO 파일
- ISO 는 CD 의 전체 내용을 파일로 담은 것.
- 이를 통하여 CD 와 DVD 를 복원하듯이 이미지를 통해 컨테이너 생성, 실행환경을 복제가능하다.
- 아파치 서버 동작을 위해
- 이미지는 컨테이너의
프로그램 격리의 필요성
- 의존성의 충돌 방지
- 프로그램이나 라이브러리는 특정 버전의 의존성을 요구한다.
- 서로 다른 프로그램이 동일한 라이브러리의 다른 버전을 필요로 하는 경우 격리하지 않는다면 충돌이 발생한다.
- 환경 일관
- 개발, 테스트, 운영 환경 간의 차이를 최소화하고, 어디서나 동일하게 동작하는 환경을 보장가능하다.
- 보안의 강화
- 격리된 환경은 다른 시스템과 격리되어 있음.
- 하나의 컨테이너가 침해당하더라고 다른 컨테이너나 호스트 시스템에 영향 X
- 관리의 용이
- 각각의 컨테이너 독립 관리
- 업데이트 변경사항이 다른 컨테이너 영향 X
- 리소스의 효율 증대
- 필요한 만큼의 리소스만 할당받아 사용
- 시스템 리소스를 보다 효율적으로 사용 가능
실무?
- 다중 프로그램의 운영시
- 서로 다른 버전의 PHP 와 파이썬을 사용하는 프로그램을 동시에 운영시
- 각각을 다른 컨테이너에 격리함으로 상호간의 충돌을 방지한다.
서버와 도커의 관계
들어가기전에..
- 일단 서버는 2가지 의미로 분류됨
- 기능적인 의미의 서버
- 특정한 서비스를 제공하는 역할을 하는 시스템
- 웹 서버
- 웹 페이지를 호스팅
- 사용자 요청에 응답
- 메일 서버
- 이메일 전송 수신 처리
- 소프트웨어로 구현되며, 물리적 서버에 다수 기능적 서버가 실행될 수 있음
- 물리적 의미의 서버
- 서버 SW 가 실행되는 실제 하드웨어
- 멀티 사용자가 원격으로 사용하는 것이 일반적
- 기능적인 의미의 서버
도커와 서버 관계 본론
- 도커는 기능적, 물리적 서버 개념을 모두 활용한다.
- 도커사용시 단일 물리 서버에 여러 개의 독립된 서비스 실행할 수 있는 컨테이너를 생성가능
- 이점
- 격리(Isolation)
서로 다른 서비스들이 서로 영향을 주지 않고 독립적으로 실행됩니다.
- 보안(Security)
한 서비스에 보안 문제가 발생해도 다른 서비스에는 영향을 미치지 않습니다.
- 자원 관리(Resource Management)
각 컨테이너는 필요한 만큼의 자원을 할당받아 사용하므로 자원을 효율적으로 관리할 수 있습니다.
- 이식성(Portability)
컨테이너화된 서비스는 다른 서버로 쉽게 이동할 수 있습니다.
- 격리(Isolation)
정리
- 서버의 기능은 SW 에 의해 제공된다.
- 어떤 컴퓨터는 SW 설치로 특정한
서버
로 변모가능
- 아파치 웹서버 SW 설치 → 웹 서버
- Sendmail 같은 메일서버 SW 설치 → 메일 서버
- 가 된다.
- 어떤 컴퓨터는 SW 설치로 특정한
Uploaded by N2T
'Docker-Kubernetes' 카테고리의 다른 글
[도커] 도커의 구조와 성질 및 그 장단점 (0) | 2024.01.25 |
---|---|
[도커] 도커의 주 용도 (0) | 2024.01.25 |
[도커] 도커 커맨드 - 컨테이너 생애주기 관련 (0) | 2024.01.25 |
[도커] 아파치와 컨테이너 기술? (0) | 2024.01.25 |
[도커] 도커에서의 운영체제와 커널의 역할 (0) | 2024.01.05 |