본문 바로가기

도커

Docker 기초

Docker란?

기존의 가상화 기술은 여러 운영체제를 하나의 호스트에서 VPC 구성한뒤 각각의 Guest OS에서 독립적인 Application을 실행하던 방식에서 Host OS의 Docker Engine이 여러 Application을 위한 가상 공간을 제공하는 것으로 VPC보다 효율적이고 성능 손실 없이 돌아가게 하는 구조이다.

VPC 와 Docker의 차이

 

Docker를 사용하는 이유

Monolith와 Microservice

Monolith는 하나의 프로그램에서 application 모든 로직이 실행되는 방식을 칭하며, Microservice는 여러 모듈들이 각각의 서비스를 제공하며, application은 이 서비스들을 모아서 실행하는 구조를 칭한다. Microservices는 모듈형태로 독립되어 있기 때문에 각각 언어에 종속 되지 않고 관리가 쉬워 진다.

 

Docker Engine install

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

 

Install Docker Engine on Ubuntu

 

docs.docker.com

위 사이트를 참고 하여 설치하면 된다.

Docker를 다 설치 하였으면 docker info를 통해 설치 확인을 하면 되는데, Docker는 VPC와 같은 맥락으로 Amin 권한을 필요로 하기 때문에 sudo 로 실행 해야 한다.

sudo docker info

이때 다음과 같이 출력 되면 정상적으로 설치된 것이다.

 

Docker Image & Container 

Docker Image

container를 생성할 때 필요한 것으로, VPC로 따지면 .iso file과 비슷한 개념. 각각의 이미지는 여러개의 binary file로 존재하며, container를 생성할 때 읽기 전용으로 사용 됨.  이미지는 도커 명령어로 다운로드 가능하다.

Docker Image 이름 형식

Docker Image의 이름 형식은 기본적으로 [저장소 이름]/[이미지 이름]:[태그] 로 구성 되어 있으며, 의미하는 건 다음과 같다.

  • 저장소(Repository) : image가 저장된 장소를 의미, 이름이 명시되지 않은 이미지는 도커 허브의 공식 이미지를 뜻함. (이미지를 생성 할 때 생략 가능)
  • 이미지: 이미지의 역할을 의미 (ex/ ubuntu) - 이미지가 어떤 역할(OS, DB, webserver ...)을 할건지 명시 (생략 불가)
  • 태그: 이미지의 버전 관리, 리비전 관리에 사용 - 이미지 버전 같은 걸 명시해 준다. (생략시 latest로 자동 설정)

Docker Container

Docker Container는 doceker image를 가지고 Docker Engine위에 만들어진 독립된 공간을 칭하며, 1개의 VPC와 비슷한 맥락을 가진다.

각각의 Docker Contianer는 생성될 때 Docker image를 읽기 전용으로 읽어 공간을 할당 하므로, Container가 아무리 수정이 된다 하더라도 Docker image에는 영향을 안 끼친다. VPC를 생성할 때 VPC 내부 소스를 건드려도 생성할 당시의 .iso file은 수정이 안되는 것과 같은 맥락인 듯 하다.

 

728x90

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

Swarm Mode 기초  (0) 2021.12.09