본문 바로가기

[DevOps]/[Docker]

[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-1.개요와 설치(feat. 정보산업진흥원)

728x90

    그동안 포스팅도 뜸했고, Docker를 독학으로 배웠어서 부족한 부분을 땜질 할 방법을 찾다가, 부산정보산업진흥원에서 무료로 docker 교육을 받게 되었다. 해당 포스팅은 교육과정 중 배운 내용을 개인적으로 정리하기 위함이다. (간단 주의) 

 

< Lesson 1. Virtualization >

 

가상화의 종류 : 

서버 가상화, 네트워크 가상화, 스토리지 가상화, 컨테이너 가상화가 있다.

1) 서버 가상화 : 가장 일반적인 가상화 기술, 리소스 활용률을 높이고자 cpu나 memory를 나누어 사용하는 것. 

2) 네트워크 가상화 : 물리적으로는 통합된 환경의 네트워크를 가상의 SW형태로 변환해 나누어 관리하는 것.

3) 스토리지 가상화 : 여러개의 물리 드라이브를 하나의 논리 드라이브처럼 사용하는 기술. 근래에는 SDS(Software Defined Storage),                 대표적으로는 Ceph, Glusterfs등등

4) 컨테이너 가상화 : Host OS에서 논리적인 구역(Container)을 만들어 서로 독립적인 어플리케이션을 실행하는 기술이다. 컨테이너 가상화는 커널 기능을 사용하며, 서버 가상화 보다 리소스를 효율적이고 빠르게 사용할 수 있다.

서버 가상화와 Linux container : 

1) Hypervisor : 서버 가상화를 할 때 CPU나 메모리와 같은 시스템 자원을 나누어 주는 파티셔닝 기술이 필요한데, 현재는 하드웨어 파티셔닝 보다 소프트웨어 파티셔닝 기술이 주로 사용되고 있고 이때 사용하는 소프트웨어를 Hypervisor라고 한다. 

2) Linux-container : 리눅스 컨테이너는 컨테이너 가상화 기술을 사용하며 도커는 리눅스 컨테이너를 다루는 도구이다. 이 때 사용되는 핵심기술은 cgroup(control group: 프로세스 혹은 쓰레드를 그룹화 하여 관리하는 기능과 시스템 리소스의 사용을 제한하는 기술이다)과 namespace( : 다수의 오브젝트를 격리하는 목적으로 사용된다)이다.

 

< Lesson 2. About Docker >

 

Docker : 

Go 언어 기반 오픈소스 플랫폼이며, 리눅스 컨테이너를 더 쉽게 관리하고 실행할 수 있게 하기 위한 것이다.

Docker의 특징 : 

 1. 서버를 코드 형태로 저장한다.(도커는 이미지 형태로 컨테이너를 실행한다.)

2. 이식성이 뛰어나다. 개발, 테스트, 서비스 단계로 나뉘어진 환경 자체를 컨테이너에 구축하므로 훨씬 편리하다.

3. 다양한 벤더(구글,아마존,MS,쿠버네티스 등등)에서 사용된다.

Docker의 구조 : 

1. 이미지 : 미리 제작된 이미지가 있어야 하며, 이미지는 여러 개 Layer로 이루어져 있다. 각 레이어는 Read-Only이다.

2. 저장소 : 퍼블릭 이미지 저장소, 프라이빗 이미지 저장소 두가지로 보통 나뉜다. 이 대표적인 저장소가 바로 Docker-Hub이다.

3. 컨테이너 : 이미지의 실행 형태이다. 즉, 이미지가 메모리에 올라가면 컨테이너이다. 또한, 하나의 컨테이너에는 하나의 어플리케이션을 실행하는 것을 권장한다.

Docker의 기능 : 

1. 이미지 생성: docker는 이미지를 생성할 수 있다. 일반적으로 사용하는 것은 Dockerfile이며, 하나의 환경 자체를 코드 형태로 저장하게 된다. 그 외에 컨테이너를 이미지로 생성하는 docker commit, 파일 시스템으로 이미지를 생성하는 docker export, import가 있다.

2. 이미지 공유: 저장소를 사용하여 공유하며, 저장소에는 docker hub 뿐 아니라 다른 프라이빗 이미지 저장소도 사용할 수 있다.

3. 컨테이너 생성 : 컨테이너를 생성하고, 네트워크 or 볼륨과 같은 도커 오브젝트를 생성한 뒤, 컨테이너에 연결하여 사용할 수 있다.

Docker 설치 :  (난 이미 설치되어 있어 생략)

docs.docker.comdocs.docker.com/docker-for-mac/install/

 

Install Docker Desktop on Mac

 

docs.docker.com

If you use windows and Virtual Box :

www.virtualbox.org/wiki/Download_Old_Builds_6_0

 

Download_Old_Builds_6_0 – Oracle VM VirtualBox

 

www.virtualbox.org

※ 2020.10.13 현재 아직 virtualBox 6.1.14 ver는 mac에서 안정화가 이루어지지 않은 듯 하다. 따라서 VirtualBox를 설치해서 docker를 실습해 보고자 한다면 이전 버전인 6.0.x를 사용하고, extension pack도 마찬가지 6.0.x ver로 설치하기 바란다.

1. 사전 패키지 설치

> sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

2. yum 저장소 설정

$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3. docker-ce 설치

$ sudo yum install -y docker-ce docker-ce-cli containerd.io

4. 서비스 실행 및 활성화

 $ sudo systemctl start docker
 
 # 부팅 이후에도 동작하도록 활성화
 $ sudo systemctl enable docker

5. docker 그룹 지정

$ sudo usermod -aG docker $USER

6. docker 버전 확인 (docker version)

728x90