일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 웹 서버
- 프로젝트 생성
- java
- 최대공약수
- 짝수
- aws
- 문자열 숫자 변환
- level1
- 알고리즘
- IaaS
- 리스트
- valueof
- Python
- 2진수
- SaaS
- IntelliJ
- parseInt
- PaaS
- 자료형
- 백준
- 데이터타입
- algorithm
- 최대공배수
- INT
- 프로그래머스
- 유클리드 호제법
- 11652
- 11004
- 온프레미스
- 홀수
- Today
- Total
Ga0Lee
[DevOps] Docker 기초(1) - 사전 기초 지식 본문
사전 기초 지식
도커를 이해하기 위해선 운영체제, 프로그램, 스레드, 네임스페이스와 같은 개념을 먼저 이해해야 한다.
운영체제의 개념
운영체제
컴퓨터 = 하드웨어 + 소프트웨어
운영체제 = 시스템 소프트웨어
운영체제가 있어야 프로그램들이 실행될 수 있다.
운영체제는 하드웨어, 소프트웨어 자원을 관리하고 스케줄링 기능을 제공할 뿐만 아니라 프로그램이 실행될 수 있는 환경을 제공한다.
셸 Shell
운영체제와 애플리케이션 사이 존재하는 프로그램
운영체제와 사용자 사이에서 다리 역할을 한다.
프로그램, 프로세스, 스레드의 개념
프로그램
실행 가능한 명령어의 집합
프로그램은 하드 디스크와 같은 저장 장치에 저장되어 있지만 메모리에는 올라가지 않은 정적인 상태를 의미한다.
프로세스
실행 중인 프로그램
메모리에 올라가 있는 동적인 상태의 프로그램을 의미한다.
프로세스는 스레드의 정보를 담고 있는 것, 즉 스레드의 컨테이너라 할 수 있다.
멀티 프로세스
디스크에 존재하는 프로그램을 여러 번 실행해서 여러 개의 프로세스를 작동시키는 것
스레드
프로세스가 할당받은 자원을이용하는 실행 단위이자 프로세스 내에 실행되는 여러 흐름의 단위
메인 스레드 : 프로세스는 최소 한 개 이상의 스레드를 가진다.
e.g) 워드 프로그램 : 스레드1 : 화면상 글자 보여주기 / 스레드 2 : 사용자의 키 입력에 대응 / 스레드 3 : 백그라운드에서 오탈자와 문법 확인 → 하나의 프로세스에 총 세 개의 스레드가 실행되는 중
네임스페이스
프로세스를 실행할 때 시스템 리소스를 분리해서 실행할 수 있도록 도와주는 기능
리눅스 네임스페이스
네임스페이스 | 의미 | 역할 |
---|---|---|
pid | PID : Process ID | 리눅스 커널의프로세스 ID를 분리 |
net | NET : Networking | 네트워크 인터페이스(NET)를 관리 |
ipc | IPC : Inter Process Communication | 프로세스 간 통신(IPC) 접근을 관리 |
mnt | MNT : Mount | 파일 시스템의 마운트를 관리 |
uts | UTS : Unix Timesharing System | 커널과 버전 식별자를 관리 |
도커 기초 지식
도커란?
컨테이너라고 부르는 운영체제 수준의 가상화 방식으로 소프트웨어를 배포하는 방식을 사용하는 PaaS
도커를 사용하면 다양한 개발 환경에서 컨테이너를 이용해 소프트웨어를 편리하게 배포할 수 있다.
컨테이너란?
소프트웨어를 배포할 때 필요한 코드, 라이브러리, 환경 설정 파일들을 한데 모아 격리시킨 후 실행가능한 패키지로 만든 것
마이크로서비스 아키텍처의 기반이 된다.
가상화란?
컴퓨터에서 활용하는 리소스를 추상화하는 개념을 의미하는 용어
단일 컴퓨팅 자원을 여러 개의 논리적인 자원으로 나누어 동작시킬 수 있다.
도커 구성 요소
- 도커 클라이언트 Docker Client
- 가상 머신에서 실행하는 터미널
- 도커 데몬과 통신한다
- 도커 데몬 Docker Daemon
- 백그라운드에서 실행되는 데몬 프로세스
- 도커와 관련된 객체를 관리한다
- containerd
- 컨테이너 실행과 관리에 필요한 기능을 수행하는 오픈소스 컨테이너 런타임
- 컨테이너의 생명주기를 관리한다.
- runc
- 컨테이너 실행과 관련된 작업을 수행하는 저수준 컨테이너 런타임
- 실제 컨테이너 실행만 담당한다.
- containerd-shim
- containerd와 runc 사이에서 작동하는 중간 프로세스로 컨테이너 실행을 조정
'DevOps > Docker' 카테고리의 다른 글
[DevOps] Docker Container Network(2) - 호스트와 컨테이너 간 파일 전송하기 (0) | 2024.06.11 |
---|---|
[DevOps] Docker Container Network(1) - 구조 (1) | 2024.06.11 |
[DevOps] Docker Image Container로 실행하기 (0) | 2024.06.11 |
[DevOps] Docker 기초 명령어(1) - Docker Image 구조 및 다운로드 (0) | 2024.06.09 |
[DevOps] Docker 기초(2) - Docker 설치 (1) | 2024.06.07 |