Docker란 무엇일까 (아직 작성중)
2013년에 등장한 도커는 인프라 세계를 컨테이너 세상으로 바꾸어버렸다. 수많은 어플리케이션이 컨테이너로 배포되고 도커 파일을 만들어 이미지를 빌드하고 컨테이너를 배포하는게 흔한 개발 프로세스가 되었다. 이렇게 뜨거운 감자인 Docker, 도커란 무엇일까?
배경
종종(이아니라 대부분) 어플리케이션은 하드웨어, OS, 미들웨어 등 인프라 환경에 민감하게 반응한다. 개발 환경과 테스트 환경에서는 잘 동작하다가 제품 환경에서는 동작하지 않는 경우도 많다. 이 경우 고객사의 인프라, 보안 환경, 각종 OS나 미들웨어의 버전 등이 원인이 다양할 수 있어 원인을 찾기가 쉽지가 않다.
도커의 등장
여기에서 등장하게 되는 도커는 어플리케이션 실행에 필요한 환경을 이미지로 만들고 해당 이미지를 활용해 다양한 환경에서 실행 환경을 구축하기 위한 오픈소스 플랫폼이다. (!) 이 이미지를 활용하면 도커가 설치된 곳이라면 어디든 상관 없이 똑같이 동작한다. Windows든, macOS든, Linux든 클라우드든 상관이 없다는 이야기!
도커는 내부에서 컨테이너를 사용한다.
도커 - 컨테이너 기반의 오픈 소스 가상화 플랫폼
컨테이너라 하면 컨테이너박스같이, 배에 싣는 화물 수송용 박스와 같은 개념이라고 생각하면 된다. 각각의 컨테이너 안에는 옷, 신발, 과일 등 다양한 화물을 넣을 수 있고 규격화 되어 다양한 운송수단으로 옮길 수 있는 것 같이, 서버에서 이야기하는 컨테이너도 이와 비슷하게 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화 할 수 있고 AWS, Azure, Google Cloud등 어디에서든 실행할 수 있다.
도커는 어플리케이션 뿐만 아니라 실행에 필요한 시스템 환경을 모아서 컨테이너(Container)로 관리한다. 컨테이너는 가상의 공간을 만들어서 호스트 OS와는 전혀 별개의 환경에서 프로세스들이 동작하는데, 가상화 기술의 하나지만 OS 가상화, 반가상화 방식과는 프로세스를 격리한다는 점에서 다르다. (자세한건 아래 reference 링크 참고) 컨테이너는 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다! 하나의 서버에 여러 개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행되어 마치 가벼운 VM(Virtual Machine)을 사용하는 느낌을 준다.
이미지요..? jpg 말하는건가?
이미지는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다. 이미지는 도커 파일과 비슷해서 헷갈리는데, 도커파일과 더불어 실행 시점을 포함한다. 도커 파일로 이미지를 만들어 두면, 서버가 구성되는 시점이 이미지를 만든 시점으로 고정된다. 1년 전에 만들었던 이미지를 1년 전에 실행해도, 지금 실행해도 설치된 시점이 같다는 뜻!
도커 이미지는 Docker hub에 등록하거나 Docker Registory 저장소를 직접 만들어 관리할 수 있다. 현재 공개된 도커 이미지는 50만개가 넘고 Docker hub의 이미지 다운로드 수는 80억회에 이른다. 누구나 쉽게 이미지를 만들고 배포할 수 있다!
도커는 특히 분산 환경을 쉽게 구축할 수 있는 클라우드 서비스와 잘 맞는다. 그래서 주요 클라우드 프로바이더들은 모두 컨테이너 실행 환경을 쉽게 관리할 수 있는 서비스를 제공한다.
Reference
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
초보를 위한 도커 안내서 - 도커란 무엇인가?
도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이미지에 대해 알아보고 왜 이렇게 도커가 인기 인지 하나하나 살펴보겠습니다.
subicura.com
10 Docker tips to make the open source container platform work for you
With the Docker platform, developers and more can easily build and deploy containerized apps. Here are 10 tips for working with Docker.
www.techrepublic.com
'IT Trends' 카테고리의 다른 글
완전 편한 Data Science용 Python 웹 프레임워크, Streamlit (2) | 2021.04.09 |
---|---|
RISC-V에 대한 나만의 생각 (0) | 2021.02.05 |
MS, 자체 서버용 프로세서 개발을 하다 (0) | 2020.12.21 |
구글, 양자 우월성을 입증하다 (0) | 2019.11.01 |
구글의 AI 플랫폼, Dialogflow에 대해서 (0) | 2019.07.31 |
댓글
이 글 공유하기
다른 글
-
RISC-V에 대한 나만의 생각
RISC-V에 대한 나만의 생각
2021.02.05 -
MS, 자체 서버용 프로세서 개발을 하다
MS, 자체 서버용 프로세서 개발을 하다
2020.12.21 -
구글, 양자 우월성을 입증하다
구글, 양자 우월성을 입증하다
2019.11.01 -
구글의 AI 플랫폼, Dialogflow에 대해서
구글의 AI 플랫폼, Dialogflow에 대해서
2019.07.31