AWS

AWS_Chapter9_docker

강용민 2022. 5. 26. 12:14

Docker

애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다.

Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다.

docker를 사용하면 환경에 구애받지 않고 개발이 가능하며, 호환성도 뛰어나다.

 

Docker Container VS Virtual Machine

컨테이너는 Host OS 상에서 리소스를 논리적으로 구분하여 마치 별도의 서버인 것처럼 사용할 수 있게 하는 기술이다.

이를 Virtual Machine과 비교를 하면,

  • Virtual Machine(Hosted/ Bare Metal Hypervisor)
    • 애플리케이션 자체와 필요한 바이너리, 라이브러리외에 OS 전체가 포함된다.
    • CPU, 메모리, 하드 디스크등의 하드웨어를 가상화하기에 하드웨어나 OS부팅에 시간소요가 발생한다.
    • 가상화된 하드웨어 및 하이퍼바이저를 통해 처리하기에 물리적 시스템보다 처리에 부가적인 오버헤드가 필요하다.
  • Docker Container
    • 애플리케이션과 꼭 필요한 바이너리, 라이브러리만 갖추며, Host OS의 커널을 공유한다.
    • 부팅시 OS는 이미 시작하고 있기에 프로세스만 시작하면 되므로 부팅 소요시간이 절약된다.
    • 커털을 공유하기에 개별 프로세스가 작업을 하는 것과 같은 정도의 시간이 걸리며, 때문에 오버헤드가 적다.

 

Docker 아키텍처

docker는 내부적으로 Client-Server구조를 사용한다. 도커는 Docker daemon이라는 데몬을 실행하여 컨테이너와 관련된 모든 요청(빌드, 실행등)을 처리한다.

  • Docker daemon
    • Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크, 볼륨등의 도커 오브젝트를 관리한다.
  • Docker Client
    • 도커 서버와 통신하기 위한 가장 주요한 기능을 수행한다.
      에를 들어, docker run 명령어를 실행하면 Docker Client는 해당 명령어를 Rest API Call으로 변환하여 도커 데몬로 전송한다.
  • Docker Registries
    • 도커 이미지를 저장하는 저장소 역할을 한다.
  • Docker Objects
    • 도커의 컨테이너 기술의 핵심 기능들을 당당하며, 다양한 도커 오브젝트를 지원한다.
    • Images
      • read-only 템플릿으로 필요한 프로그램, 라이브러리, 소스등을 설치한 뒤에 이를 파일로 만든 것이다.
        이렇게 만든 이미지를 레지스트리에 올리고, 레지스토리에 올라와 있는 다른 이미지를 받을 수도 있다.
    • Container
      • 이미지를 실행한 결과로 생성되는 인스턴스를 의미한다. 이미지를 여러번 실행시키면 하나의 여러 개의 컨테이너가 만들어진다. OS로 본다면 이미지는 일종의 실행파일, 컨테이너는 프로세스와 유사한 개념이다.
        사용자는 도커 클라이언트 명령어를 호출함으로써, 컨테이너를 관리할 수 있다.

 

Docker 실습

1. repository 인덱스 갱신하기(최신 패키지로 저장소에 있는 패키지들을 업데이트)
sudo apt update 


2. 도커 다운을 위해 필요한 패키지 설치
sudo apt install apt-transport-https 

http접근을 위한 패키지
sudo apt install ca-certificates

ssi 디지털 서명??
sudo apt install curl

특정사이트에서 다운로드 받을때 필요한 패키지
sudo apt install software-properties-common

소스코드를 받으면 자동 패키지화해주는 패키지

3. curl 명령어로 도커 다운받기

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add


4. repository에 경로 추가하기
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

저장소에 url 주소 추가 -> apt update시 도커도 자동연결 update
sudo apt update


5. 도커 설치하기
apt-cache policy docker-ce


sudo apt install docker-ce


6. 확인하기
sudo systemctl status docker



# Hello world이미지 받기
sudo docker pull hello-world


sudo docker images


sudo docker run hello-world


sudo docker ps -a 


sudo docker rm 컨테이너ID


sudo docker images

'AWS' 카테고리의 다른 글

AWS_Chaper6~10_요약  (0) 2022.06.09
AWS_Chapter10_Docker로 MySQL서버 구축  (0) 2022.06.02
AWS_Chapter07_네트워크 기초  (0) 2022.05.12
AWS_Chapter6_RDS  (0) 2022.04.28
AWS_Chapter05_리눅스 기초명령어  (0) 2022.04.08