'IT/도커'에 해당되는 글 3건

  1. 2021.02.09 도커교육 -1일 (실습)
  2. 2021.02.02 도커 교육 - 1일 (이론)
  3. 2021.01.26 도커 1

◇ 도커 실습

- Docker는 리눅스 기술(네이티브 설치)

- 윈도우/맥에서는 하이퍼바이저 기반 docker Toolbox/Docker Desktop

- Docker Toolbox는 VirtualBox 기반

- Docker Desktop (Hyper-V 기반): 윈도우 10 Pro/Enterprise 이상의 라이선스 필요.

- 맥 버전은 제약 없음

- http://docker.com (도커 hub에서 이미지 받아서 실행)

▶ 설치 주의 사항

- CPU 가상화 기능 요구(vt-x나 amd-v 요구), Pentium/Celeron CPU는 실행되지 않음

- 다른 가상화 기술 충돌: 버추얼박스와 Hyper-V/VMware들이 싱행되고 있느지 확인

▶ 실습 진행

- 윈도우 > 버추얼박스 > 우분투(서버) > 도커 > 우분투(컨테이너) 실행

① 버츄얼 박스 설치

② extension pack 설치

③ 버츄얼 박스 관리자 실행

④ 파일 > 가상시스템 가져오기 > 가상머신 파일 선택 (.ova)

⑤ 시작

⑥ ID: ubuntu / PW: ubuntu

⑦ $ 프롬프트 확인

⑧ $sudo apt update

⑨ $sudo apt install openssl-server

- 도커 설치

① $sudo apt install docker.io

② $sudo apt install docker-compose

sudo apt install docker.io
sudo apt install docker-compose

 

$ sudo docker search ubuntu

* sudo를 매번 인력하기 귀찮다면?

$sudo usermod -aG docker ubuntu

 

▶ 실행 후 바로 접속 상태

- Docker container Ubuntu 

- 도커 명령어들은 $ 상태에서 입력해야 함

- 도커 이미지 검색(기본이 최신 버전): docker search ubuntu

- 우분투 이미지 다운로드: docker pull ubuntu

- 이미지 리스트 출력: docker images

- 컨테이너 생성(동시에 접속): docker run -it --name=ubuntu1 ubuntu

- 컨테이너 접속: docker exec -it ubuntu1 bash

- 컨테이너 탈출: control-P-Q 순서대로 입력 (컨테이너 정지하지 않고 나옴)

  

 

'IT > 도커' 카테고리의 다른 글

도커 교육 - 1일 (이론)  (0) 2021.02.02
도커 1  (0) 2021.01.26
Posted by jk.jeong
,

◈ 클라우드(서비스)

예전에는 하이퍼바이저 기반으로 구현(VMware ESXi + vCenter = vShpere) 등

◇ 구현 기술

 도커(컨테이너) + 오케스트레이션(스웜/쿠버네티스)

 -> 기존 하이퍼바이저 보다 가벼움

 -> vSphere7은 + Kubernetes 지원 (하이브리드 형태)

클라우드 현황 

- IT 공룡들의 경쟁

- 실리콘 밸리 핵심 기업: FAANG(Facebook/Amazon/Apple/Netflix/Google)

- 클라우드 4: AMIG(Amazon AWS/Microsoft Azure/IBM Bluemix/Google Cloud)

- 한국은? 규제, 기술 격차?

 

◇ 클라우드 기반 서비스

▶ Amazon AWS

   - EC2/EMR/RDS ...

   - Elastic Computing Cloud/Elastic MapReduce ...

   - Simple Storage Service, Relational Database Service ...

▶ MS Azure

▶ 구글 드라이브

   - 클라우드 디스크 + 오피스 + PDF viewer, ...

▶ 드랍박스, N드라이브, 다음 클라우드, U클라우드 ...

▶ 해외: Oracle 18"c", MSOffice.com, Dropbox, Adobe ...

▶ 국내: KT Cloud, Naver Cloud, NHN 토스트 ...

◇ 하이브리드 클라우드

▶ 여러개의 클라우드를 같이 사용

   - 줌(AWS/Azure/Oracle), iCloud(Bluemix/Google Cloud)

   - 하이브리드 형태를 가장 잘 지원하는 것이 Kubernetes 다?

 

◇ 클라우드 구현 기술

- 클라우드를 구축하기 위한 가능 기술(Enabling Technology)

  가상화 vs 컨테이너 기반 가상화

- 가상화

  Hypervisor로 통칭

  VMware ESXi(+vCenter), Hyper-V, Xen, VirtualBox ...

  서버 활용도가 높아짐 + 개별 VM은 느리짐(10~15%)

- 컨테이너 기반 가상화

  도커(Docker) + 쿠버네티스(Kubernetes)

  서버 활용도가 높음 + 개별 VM?이 가벼움

▶ 하이퍼바이저 기반 가상화의 특징

- 장점

  서버 Utilization 향상(80%)

  시스템 가상화로 인해 다양한 게스트 OS를 실행할 수 있음, 윈도우/리눅스/MacOS/NAS ...

- 단점

  물리시스템과 게스트 OS간의 가상화 기능으로 인한 성능 저하... 약 10~15% 정도의 오버헤드

  호스트 OS와 게스트 OS간의 기능 중복(스케줄링 등)

▶ 도커의 성능

- 오버헤드가 3% 이내, 가상화는 10% 내외?

- 현재 네트워크 오버헤드도 상당히 줄었음.

▶ 듀얼모드 vs 싱글모드

- vSphere(VM) + kubernetes (container) -Redhat/VMware

- Docker/Kubernetes only - google

 

◇ 컨테이너 기반 가상화

- 서버: 리눅스만 사용/ 컨테이너(VM)끼리 커널을 공유

- 현재 대부분의 서버가 유닉스/리눅스, 윈도우는 많지 않음...

- 기존 가상화와 다른 개념: 하드웨어 가상화가 아닌 실행 환경 분리, 각 컨테이너간 영향을 분리

 

▶ 기술적 특징

- 모든 컨테이너들이 동일 OS 커널을 공유

- 독립적인 스케줄링이나 CPU/메모리/디스크/네트워크를 가상화 하지 않음.

- 리눅스의 특수 기능(LXC)을 사용한 실행 환경 격리를 응용

- 리눅스에서만 사용

- 처음에는 우분투에서 현재 리눅스 배포판에서 사용 가능(Fedora, RHEL, ...)

- 현재는 LXC -> Libcontainer -> RunC(표준)을 사용해 우분투 의존도에서 해방

- 다른 OS(윈도우/OSX)에서 사용하려면 (도커와는 관련 없음?), 일반 하이퍼바이저(경량)가 있어야 함.

- Windows Container 

 

▶ 도커의 특징

- hub.docker.com 참고

- 가볍다? 똑똑하다?

- 많은 사람들이 자기가 구축한 이미지를 공유(도커허브): 구글, 오라클과 같은 회사에서 자사의 S/W 배포 방법으로 채택

- 에코 시스템? : 도커기반/활용 기술의 활성화, 도커 컴포즈, 스웜, 구버네티스

 

▶ 도커의 기술적 특징 (LXC) - Linux Container

- 시스템 레벨 가상화

- cgroup(Control groups): CPU/메모리/디스크/네트워크 자원을 할당

- Namespaces(Namespace Isolation): 프로세스트리, 사용자 계정, 파일시스템, IPC ... 호스트와 별개의 공간 설정

- chroot(change root) 명령어에서 발전: chroot jail, chroot 상의 폴더에서 외부 디렉토리 접근 안됨.

- 도커는 실행할 때 시스템 관리자 권한이 필요함(sudo~), 잠재적인 보안 취약점 있음(시큐어코딩)

 

▶ 도커의 기술적 특징 - Libcontainer

- 우분투 의존성을 해결하기 위해 LXC외에 Libcontainer 제작, 실행 드라이버(exec driver)라고 부름

- native(libcontainer), lxc(LXC)

 

▶ 도커의 기술적 특징 - containerd/runC

- 도커 1.11이후

- 기존 방식과 최신 방식의 차이: containerd/runC 기반의 도커

- containerd: 컨테이너를 실행하고 노드에서 이미지를 관리하는데 필요한

 

▶ 도커의 기술적 특징 - LXD

- 우분투를 만든 캐노니컬에서 만든 컨테이너 솔루션

- 기존의 LXC에 보안 개념까지 추가: Security by default, root가 아니어도 컨테이너 생성 가능

- 도커는 Application Container, LXD는 Machine Container

- LXD는 Contain "Hypervisor", 경쟁 기술이라기 보다는 보완 관계(도커와 병행 가능)

 

 

 

 

 

 

 

 

'IT > 도커' 카테고리의 다른 글

도커교육 -1일 (실습)  (0) 2021.02.09
도커 1  (0) 2021.01.26
Posted by jk.jeong
,

도커 1

IT/도커 2021. 1. 26. 08:48

도커

컨테이너형? 가상화를 구현하기 위한 상주 어플리케이션, 이를 관리하는 명령형 도구로 구성.

어플리케이션 배포에 특화되어 있음.

도커 이전 컨테이너형 가상화 에는 LXC(Linux Containers)가 가장 유명 했으며 도커 초기에는 LXC를 런타임으로 사용 했음. 현재는 rucC를 사용.

* 컨테이너형 가상화 기술

컨테이너형 가상화를 사용하면 가상화 소프트웨어 없이도 운영 체제의 리소스를 격리해 가상 운영 체제로 만들 수 있음. 이 가상 운영 체제를 컨테이너라고 하며 컨테이너를 만들면서 발생하는 오버헤드는 다른 가상화 소프트웨어보다 더 적고 빠르게 시작 및 종료가 가능, 이에 들어가는 리소스도 작은 편임.

그림1

 

◈ 도커와 LXC 차이

- 호스트 운영 체제의 영향을 받지 않는 실행 환경

- DSL(Dockerfile)을 이용한 컨테이너 구성 및 어플리케이션 배포 정의:  Dockerfile  코드를 기반으로 복제 및 배포가 이루어지기 때문에 재현성이 높음. 만들어진 기존 컨테이너를 다른 환경에서 동작시키기 위한 매커니즘이 잘 만들어져 있음.

- 이미지 버전 관리

- 레이어 구조를 갖는 이미지 포맷

- 도커 레지스트리

- 프로그램 가능한 다양한 기능의 API

 

도커 사용?

- 코드를 통한 실행 환경 구축과 어플리케이션 구성

- 실행 환경과 어플리케이션 일체화로 이식성 향상

- 시스템을 구성하는 어플리케이션 및 미들웨어의 관리 용이성

- 코드로 관리하는 인프라와 불변 인프라의 두 개념을 낮은 비용으로 실현 가능

- 도커 컨테이너는 운영체제와 어플리케이션을 함께 담는 개념.

 

◈ 컨테이너와 VM 차이

컨테이너는 VM과 유사하나 VM은 아니다. OS가 필요하지 않음? 

Docker 이미지 파일은 엄처 작고 가벼우며 Library를 공유.

 

 도커 컨테이너 오케스트레이션 

- 여러 컨테이너를 사용하는 어플리케이션을 쉽게 관리할 수 있도록 -> 도커 컴포즈

- Yaml 포맷으로 작성된 설정 파일로 컨테이너를 정의하거나 컨테이너 간의 의존 관계를 정의해 시작 순서를 제어할 수 있음.

- 도커 스웜(Docker Swarm): 여러 컨테이너를 관리하는 것만이 목적인 도커 컴포즈와 달리 컨테이너 증감, 노드의 리소스를 효율적으로 활용하기 위한 컨테이너 배치, 로드 밸런신 기능 등의 기능을 갖춤. 배포 시에 롤링 업데이트가 가능.

- 쿠버네티스: 구글의 오픈소스 소프트웨어, 사실상 컨테이너 오케스트레이션 표준. 도커 스웜보다 기능이 충실하며 확장성이 높음.

 

 

 

 

'IT > 도커' 카테고리의 다른 글

도커교육 -1일 (실습)  (0) 2021.02.09
도커 교육 - 1일 (이론)  (0) 2021.02.02
Posted by jk.jeong
,