01 Docker
01 Docker
1. Docker
1. 도커(Docker)/컨테이너(Container)/이미지(Image)
- 도커(Docker)
- 컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴
- 툴! 도구!
- 컨테이너(Container)
- 하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념
- 여기서 미니 컴퓨터를 보고 Docker에서는 컨테이너(Container)라 부름.
- ‘컨테이너’와 ‘컨테이너를 포함하고 있는 컴퓨터’를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 ‘호스트(host) 컴퓨터’
- 이미지(Image)
- MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너(Container) 환경에서 실행
- 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있음.
2. Docker의 이점
- 도커의 가장 큰 장점은 이식성(특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있음)
- 매번 설치 과정을 일일이 거치지 않아도 됨
- 항상 일관되게 프로그램을 설치할 수 있음. (버전, 환경 설정, 옵션, 운영 체제 등이 유지됨)
- 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않음.
3. 컨테이너(Container)의 독립성
- 컨테이너는 ‘독립적인 컴퓨터 환경’
- 독립으로 구성되어있는 것
- 디스크 (저장 공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파 일에 접근할 수 없음
- 네트워크 (IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있음
2. Memo
- 도커라는 툴을 이용해서 이미지를 컨테이너 환경에서 실행하여 사용함.
- 흐름 체크
- 도커에서 nginx 이미지를 받음. ->
docker pull nginx - 도커에서 내가 가지고 있는 이미지를 확인 ->
docker image ls - nginx를 이용한 컨테이너(webserver 컨테이너)를 실행함 ->
docker run --name webserver -d -p 80:80 nginx - 실행중인 컨테이너의 존재유무 확인 ->
docker ps - 특정한 컨테이너(webserver 컨테이너)를 죽임 ->
docker stop webserver
- 도커에서 nginx 이미지를 받음. ->
2. 쿠버네티스(Kubernetes)
1. 쿠버네티스
- 컨테이너 여러 개를 자동으로 배포·운영·확장하는 오케스트레이션 시스템.
- 컨테이너 실행 자체는 containerd 같은 런타임이 실제로 수행.
- 쿠버네티스는 이 런타임에 “이 이미지를 이런 설정으로 실행하라”라고 명령만 하는 구조.
- 컨테이너 여러 개를 여러 노드에 걸쳐 자동 배포·감시·복구·스케일링함.
2. 도커와 쿠버네티스
- 이미지 만드는 기준은 동일(도커 방식).
- 도커는 직접 컨테이너를 1개씩 실행하고 관리하는 실행자.
- 쿠버네티스는 containerd 등을 이용해 컨테이너들을 거대한 클러스터 단위로 자동 관리하는 조율자.
2. 도커와 쿠버네티스 비교
| 구분 | 도커 | 쿠버네티스 |
|---|---|---|
| 기본 역할 | 컨테이너 생성·실행 | 다수의 컨테이너 배포·관리 |
| 이미지 관련 | 이미지 빌드 및 실행 | 이미지를 기반으로 파드 생성·배포 |
| 실행 관리 | 단일 컨테이너 실행/중지 | 자동 재시작, 헬스체크, 장애 복구 |
| 확장성 | 수동 스케일링 | 자동 스케일링(HPA 등) |
| 배포 방식 | 직접 컨테이너 띄움 | 롤링 업데이트, 롤백 지원 |
| 네트워크 | 단일 컨테이너 또는 단일 호스트 중심 | 서비스 디스커버리, 클러스터 네트워크 |
| 구성 요소 | Dockerfile, 이미지, 컨테이너 | Pod, Deployment, Service 등 오브젝트 |
| 사용 목적 | 앱 실행 환경 표준화 | 분산 환경에서 운영 자동화 |
This post is licensed under CC BY 4.0 by the author.