Scroll indicator done
728x90

# 도커 : 오픈 소스 컨테이너 프로젝트

  • 복잡한 리눅스 애플리케이션을 컨테이너로 묶어 실행할 수 있음
  • 개발, 테스트, 서비스 환경을 하나로 통일하여 관리할 수 있음 = 효율적
  • 리눅스 커널에서 제공하는 컨테이너 기술 이용
    • 컨테이너 ? 가상화보다 훨씬 가벼운
    • 가상 머신 ? 컴퓨터 안에서 컴퓨터 성능 ex. 맥에서 인터넷 뱅킹
    • 서버 자체(서버 프로그램, DB 등)을 가상 머신에 설치
    • 미리 구축한 가상 머신의 이미지를 여러 서버에 복사하여 실행 -> 이미지 하나로 서버를 계속 만들어낼 수 있음
    • 가상화 기술을 이용해 서버를 임대해주는 서비스 : 클라우드 서비스
    • 가상 머신의 문제점  컴퓨터를 통째로 만듦, 성능 손실 발생 -> 인텔 Hyper V, 반가상화 기술 등장
    • 반가상화 기술 : 호스트와 커널을 공유
    • 가상 머신은 완전한 컴퓨터, 항상 게스트 OS를 설치해야 함
  • GitHub와 비슷한 방식의 Docker Hub 제공
  • 컨테이너 안에 가상 공간을 만들지만 실행 파일을 호스트 OS에서 직접 실행 -> 게스트 OS가 필요 없음
  • 리눅스 커널의 cgroups 와 namespaces 가 제공하는 기술

리눅스 커널

# 도커의  특징

  • 게스트 OS 설치 x
  • 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치
  • 이미지 용량이 줄어듦
  • 호스트와 OS 자원 (시스템 콜)을 공유
  • 도커는 이미지 생성과 배포에 특화
  • 이미지 버전 관리도 제공, 중앙 저장소에 이미지를 올리고 받을 수 있음 (push / pull)
  • 도커 이미지를 빌드할 수 있는 Docker Hub 제공
  • 다양한 API를 제공하여 원하는 만큼 자동화 가능, 개발과 서버 운영에 유용

 

# 도커 이미지와 컨테이너

도커 이미지 : 서비스 운영에 필요한 서버 프로그램 (소스 코드 , 컴파일된 실행 파일을 묶은 형태)

저장소에 올리고 받는 것 (push / pull), 논리적 의미 - 이미지

이미지를 실행한 상태, 물리적 의미 - 컨테이너

>> 이미지로 여러 개의 컨테이너 생성 가능

ex. if) OS, 이미지는 실행파일 / 컨테이너는 프로세스 or 스레드

 

# 도커는 이미지의 바뀐 부분을 어떻게 관리 ? 

ex.

A -> Linux

B -> Linux +  php

: 유니온 파일 시스템 형식   aufs, btrfs, devicemapper

  >> 바뀐 부분만 이미지로 생성하고 베이스 이미지와 합쳐서 실행

 

# 도커 설치하기

https://www.docker.com/#

 

Home - Docker

Learn how Atomist will help Docker meet the challenge of securing secure software supply chains for development teams.

www.docker.com

# 도커 설치 확인

docker failed 일 시 >> wsl 3-4단계

https://docs.microsoft.com/ko-kr/windows/wsl/install-manual

 

이전 버전 WSL의 수동 설치 단계

wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.

docs.microsoft.com

# 우분투 이미지 파일 설치

docker pull ubuntu

>> Virtual Box 보다 효율적

docker ps -a

ps : 실행중인 도커, ps -a : 실행하지 않는 것도 보여줌
도커 실행

Ctrl + p + q -> 서버 나가기

이전에 실행한 우분투 이미지 파일 보여짐
20 버전으로 다른 이름으로 실행
리눅스 위에서 도커 머신이 두 개 동작 (열 개도 띄울 수 있음)
도커 중지
이전의 도커 실행하기
중지한 도커 다시 실행시키기

 

# ubuntu mysql

# docker Desktop 에서 확인

 

https://docs.docker.com/get-started/

 

Orientation and setup

 

docs.docker.com

# 하둡 설치 (pdf 참고)

- 이미지 만드는 과정 보여주는 것, 실제로 이미지 배포할 예정

우분투 이미지 설치 - 도커 이미지 생성 전 : 하둡 base 이미지 만들기

 

$ docker run –it –h slave1 ­­--name slave1 ­­--link master:master ubuntu:hadoop

# 각 컨테이너 IP 
$ docker inspect master
$ docker inspect slave1
$ docker inspect slave2

 

 

728x90