practice makes perfect

Docker 무엇인가 본문

Docker

Docker 무엇인가

후니옹 2018. 11. 3. 12:52

Docker 란 무엇인가???


2013년 3월 Docker,Inc 에서 출시한 오픈소스 컨테이너 프로젝트

- 현재 전 세계적으로 큰 인기몰이를 하고 있다

- VMware , VirtualBox와 같은 VM 툴을 사용하지 않더라도 복잡한 리눅스 애플리케이션을 컨테이너로 묶어서 실행 할 수 있다.

- 컨테이너 이미지를 전 세계 사람들과 공유 가능



Container?

- 컨테이너는 격리된 공간에서 프로세스를 동작하는 기술(기존 가상화 방식과는 차이가 있음)

- 기존에 사용하던 VMware , VirtualBox 경우 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용하는 방식이지만 이 방식은 무겁고 느려 운영환경에서는 어려움이 있다

- 프로세스를 격리시키기 떄문에 가볍고 빠르게 동작한다.

- CPU 나 Memory 는 프로세스가 필요한 만큼만 사용하고 성능적 이슈도 거의 없다.

- 컨테이너를 만드는 시간은 겨우 1~2초 정도이며 기존 VM 생성과는 비교 할 수 없이 빠르다.



Image ?

- Docker에서 가장 중요한 개념 중 하나인 이미지

- 컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는 것

- 같은 이미지에서 여러개의 컨테이너를 생성 할 수 있다 (일종의 Template)

- 컨테이너를 실행하기 위한 모든 정보를 가지고 있어 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다.

- Docker 이미지는 Docker HUB에 등록하거나 Docker Registry 저장소를 직접 만들어 관리 할 수 있다.



MSA 구현이 가능

- Microservice Architecture

- 독립적인 역할을 수행하는 작은 단위의 서비스로 분리하여 설계하는 패턴



Immutable Infrastrcture

- 호스트 OS와 서비스 운영 환경 (서버 프로그램, 소스코드, 컴파일 된 바이너리)을 분리



Github 를 이용하여 효율적으로 작업 가능

- Source 개발

- OS 환경 Upgrade

- Docker 환경에 적용 > Script 권장

- DockerFile > Github > Build 해서 실제 운영 환경에 적용

- Docker Image > Dockerhub 테스트

- Source Code > Github



효율적인 Docker 관리 방법

- Kubernetes를 해야한다.

- 즉 여러대의 서버에 여러 Docker Container를 가동 시키고 관리하는 툴

- Kubernetes를 먼저 시작하는 것 보다 Docker를 시작하고 어느정도 해야 익히는데 좀 더 쉽다.


그 밖 Docker 이점

- OS 설치 및 배포 시간의 감축

- 테스트 적용이 빠르다

- 인건비 절감 가능

- Cloud 까지 적용이 쉽다


전체적인 IT 인프라 커버가 가능하며 빠르고 비용이 감소한다!!




'Docker' 카테고리의 다른 글

docker service failed  (0) 2024.05.06
Comments