일일 정리

DOCKER

mysecurity 2025. 5. 16. 15:19

목차

1. DOCKER

1-1 개요

1-2 DOCKER 설치

 

 

1. DOCKER

1-1 개요

도커는 컨테이너를 이용해 같은 형태의 프로그램을 여러 개 띄워 사용할 수 있도록 하는 하이레벨 소프트웨어이다.

같은 형태의 프로그램을 같은 컴퓨터에서 실행 시 충돌이 발생하므로 이를 해결하기 위해 다음 두 가지의 방식을 이용한다.

- hypervisor 이용

- docker 이용

 

● Hypervisor

 VM, V-Box와 같이 가상 환경을 제어/관리하는 하이퍼바이저를 개발하여 그 위에 여러 os를 설치해 각각 프로그램을 할당해 사용한다.

 

- 장점

  : 한 컴퓨터에 같은 형태의 프로그램 동시 실행이 가능하다.

 

- 단점

  : 프로그램보다 덩치가 큰 os를 여러 개 설치하여 하드드라이브의 리소스를 낭비하며 렉이 발생한다.

 

● Container Engine : docker

host os 위에 여러 os를 새로 생성하는 방식이 아닌, 각각의 프로그램을 컨테이너에 넣어 마치 현재 컴퓨터에 프로그램이 단독으로 돌아가고 있다고 착각하도록 하는 컨테이너 기술을 이용한다.

 

- 장점

  : 컨테이너끼리 간섭하지 않으므로 같은 형태의 프로그램 동시 실행이 가능하다.

 

- 단점

  : host os 오류 발생 시 위의 컨테이너들 모두 오류가 발생한다.

  : 오류가 발생한 컨테이너는 일일이 검수하여 처리해줘야 한다.

 

** 컨테이너 오케스트레이션을 이용하여 이슈가 생긴 컨테이너를 자동으로 관리할 수 있다. 컨테이너를 늘리고 줄여 비용 탄력적인 이용이 가능하다. 

 

 

● 작동 원리

docker - 하이레벨 소프트웨어로 여러 프로그램이 모여있는 패키지와 같다.
- 사용자가 컨테이너 생성 명령 시 도커가 containerd, runC와 같은 컨테이너 런타임에게 해당 작업을 요청한다.
containerd
runC
cri-o
- 컨테이너 런타임으로, 컨테이너를 실제로 돌려주는 소프트웨어이다.
- containerd는 runC나 libcontainer를 호출해 컨테이너를 생성한다. libcontainer는 LXC를 호출한다.
- runC, LXC는 리눅스 커널 기능을 통해 직접 컨테이너를 생성한다.
chroot
namespace
cgroup
- 리눅스 커널의 기능으로, 해당 기능을 통해 컨테이너 생성이 가능하다.

 

 

1-2 DOCKER 설치

도커 홈페이지에서 다운로드 가능하다.

https://docs.docker.com 

 

Home

Docker Documentation is the official Docker library of resources, manuals, and guides to help you containerize applications.

docs.docker.com

 

다음 페이지에서 리눅스 배포판별로 도커 엔진 설치가 가능하다.

https://docs.docker.com/engine/install/

 

Install

Learn how to choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.

docs.docker.com

 

● Rocky linux 8에서 설치

로키 리눅스에서 다음과 같이 도커 설치가 가능하다.

# dnf update ‐y

# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# dnf repolist
# dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io docker-compose-plugin

# systemctl enable docker
# systemctl start docker
# docker ‐v  // 도커 버전 확인

--allowerasing: 종속성 확보를 위해 임의의 패키지를 삭제하거나 재설치한다.

 

가급적 root보다는 일반 계정을 이용하며, 일반 계정에서 도커를 사용하기 위해서는 도커 그룹에 해당 계정을 등록한다.

: # usermod -G docker 계정

 

도커 이용시 반드시 다음 페이지에서 회원가입을 진행한다. 우리가 이용하는 이미지의 대부분은 이 도커 허브에 올려져있다.

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

도커 실습 시 홈페이지와 리눅스 모두 로그인 후 진행하는 것이 좋다. 비로그인 상태로도 실습 가능하나 오류가 발생할 수 있다.

'일일 정리' 카테고리의 다른 글

Docker container command  (2) 2025.05.21
Docker Command, Docker Image & HUB  (2) 2025.05.19
SQL 인젝션 방어  (1) 2025.05.15
SQL 인젝션  (1) 2025.05.14
snort - rule 설정  (1) 2025.05.12