Docker의 기본 개념과 사용법(컨테이너 & 가상화)

canyi·2023년 4월 5일
0

Docker

목록 보기
1/9

Docker란 무엇일까?

Docker 공식 홈페이지 훓어보기

• open platform 이다.
• 어플리케이션을 인프라에서 분리해준다.
• 신속하다.
• 인프라를 어플리케이션을 관리하는 것 처럼 관리 할 수 있다.
• 코드를 배포에 용의하다.

• 컨테이너 기반 가상화 도구
• 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술

Container 란 무엇일까?

• 컨테이너는 가상화 기술 중 하나
• 호스트 운영체제 위에 여러 개의 격리된 환경을 생성
• 각각의 컨테이너 안에서 애플리케이션을 실행

가상화 (Virtualization) 기술이란 무엇일까?

하나의 물리적인 컴퓨터 자원(CPU, 메모리, 저장장치 등)을
가상적으로 분할하여 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술
이를 통해 물리적인 컴퓨터 자원을 더욱 효율적으로 사용할 수 있으며,
서버나 애플리케이션 등을 운영하는데 있어 유연성과 안정성을 제공합니다.

고성능 서버를 조금 더 안정적이고 효율적으로 사용할 수 있을까?

하이퍼바이저 (Hypervisor) 란?

가상 머신(Virtual Machine,VM)을 생성하고 구동하는 소프트웨어
• OS에 자원을 할당 및 조율
• OS들의 요청을 번역하여 하드웨어에 전달

활용예제

Virtual Machine VS Container

컨테이너 기반 특징

• 리눅스 커널의 기능을 사용하여 만들어짐
• chroot: 파일 시스템을 격리
• namespace: 프로세스 격리
• cgroup: 하드웨어 자원 격리

• 프로세스 단위의 격리 환경

도커는 리눅스에서만 사용해야하나요?

그냥 프로그램 실행하는 것과 무엇이 다른가요?

• 컨테이너 기반 가상화 도구
• 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술
• 리눅스 컨테이너 기술인 LXC(Linux Containers) 기반
• 다양한 운영체제에서 사용할 수 있으며, 컨테이너화된 애플리케이션을 손쉽게 빌드, 배포, 관리할 수 있는 다양한 기능을 제공
• 위 기능들을 통해 애플리케이션을 빠르게 개발하고, 효율적으로 배포, 관리할 수 있음

profile
백엔드 개발 정리

0개의 댓글