안녕하세요. 메타클라우드 입니다.😄
제가 도커(Docker)를 처음 봤을 때는 회사 이름인 줄 알았는데 기술 이름이기도 하더라고요. 처음 접했을 때부터 기술 이름과 회사 이름이 같아 다소 혼란스러웠던 것 같습니다.
클라우드를 하게 되면서 도커(Dockeer)에 대해 반드시 이해해야 하는 개념이라고 생각해서 아주 기본적인 부분에 대하여 포스팅을 합니다.
1. 도커(Docker)란 무엇인가?
도커(Docker)는 Linux의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈소스 프로젝트이다. - Wikipedia -
- 한마디로 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하는 기술을 도커(Docker)라고 하는데 여기서 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있습니다.
- 우리가 사용하는 Windows10 OS위에 가상 머신(VM)으로 Guest OS를 구동하는 걸 비교하여 생각하면 이해하기 쉬울 것 같습니다.
2. 도커(Docker)를 왜 쓰는가?
- 도커(Docker)는 도커파일(Dockerfile)을 통해 환경 격차(Environment Disparity)를 해결해주는 엄청난 장점이 있습니다.
- 예를 들어 도커(Docker)를 사용하면 개발환경이 Windows 10 OS인 곳에서 개발한 코드가 실제 운영하는 서버의 OS가 Linux OS라도 개발환경에서 실행했던 코드와 동일하게 실행될 수 있도록 해주는 겁니다.
- 이런일이 가능한 이유는 도커(Docker) 컨테이너들은 각각 독립적으로 분리,격리(isolation)되어 있기 때문입니다.
- 그러므로 기존에 서버마다 서비스와 기능을 나누어 구성했다면, 도커(Docker)를 사용하면 한개의 서버, 한 개의 OS위에 여러개의 도커(Docker) 컨테이너를 각각 독립적으로 서비스와 기능을 구현할 수 있게 된 것입니다.
- 즉 환경격차와 격리의 장점이 있는 도커(Docker)를 사용하면 개발자와 관리자는 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신 할 수 있습니다.
3. 참고페이지
Youtube - 노마드 코더(Nomad Coders)
'ETC' 카테고리의 다른 글
쿠버네티스(Kubernetes)란 무엇인가? (0) | 2020.09.08 |
---|---|
기술블로그 시작하기 (0) | 2020.03.26 |