티스토리 뷰


 우선 Docker 를 알기전에 Immutable Infrastructure 를 이해할 필요가 있는대요. Immutable Infrastructure 란 굳이 번역 하자면 불면의 기반, 불변의 인프라 와 같이 해석 할수 있는대요.


 Immutable InfrastructureOS( Ubuntu, Centos, Windows, MAC 등... ) 와 서비스 환경( 어플리케이션, 소스코드, 시스템 툴, 시스템 라이브러리 등의 서버에 설치하는 것들 )을 분리하여 이해하고 분리한 것들 중 서비스 환경 ( 서비스 인프라 ) 부분을 이미지화 하여 배포한뒤 가급적으로 변경 않고 사용하는 것을 의미 합니다. 서비스 환경 업데이트는 서비스 환경을 변경하는 것이 아닌 이미지를 교체 하는 식으로 이루어 집니다.


관련 자료 : https://www.docker.com/whatisdocker


Docker 는 이러한 Immutable Infrastructure 패러다임의 도구 중 하나 입니다.


  환경을 이미지화 하여 운영하니  Docker 와 Virtual Machine 은 비슷해 보일수도 있습니다. 하지만 근본적으로 다른점이 위에서도 설명 드렸지만 OS 와 서비스 환경을 분리 한다는 것 입니다. 아래의 그림을 보시면 쉽게 이해하실수 있으실 것 입니다.


 아래는 VM  의 구조 입니다. Host OS 위에 각각의 Guest OS 를 각각 하나씩 설치 하는 형태 입니다. 각각의 OS 를 설치하기 때문에 용량이 굉장이 클 것 입니다.


이미지 : https://www.docker.com/whatisdocker





아래는 Docker 의 구조 입니다. OS 위에 Docker Engine 를 설치하여 그위에 각각의 서비스 환경 들을 설치/운영 하는 형태 입니다. 


이미지 : https://www.docker.com/whatisdocker


 이러한 Docker 의 장점은 역시 이미지 단위이기 때문에 이미지 하나로 여러대의 서버에 서비스 환경 자체를 설치하고 업데이트 하는 등의 관리가 쉽습니다. 이는 테스트 를 위해서 개발자의 PC 에 설치/테스트 후 운영 서버에 이미지를 변경 하는 운영이 쉽다는 것을 의미합니다. 또한 운영 체제를 설치하는 것이 아니기 때문에 매우 가벼우며 Docker Engine 이 설치가 되는 환경이라면 이미지가 사용 가능하기 때문에 어디서든 ( Docker 가 설치된다면 ) 사용 가능하다고 볼 수 있습니다.


 마지막으로 Docker 의 개념중 Container 와 Image 개념을 이해하셔야 합니다. Container는 이미지를 담는 상자로 서비스 환경 ( 이미지 )을 담는 컨테이너 ( 상자 ) 라고 이해 하시면 됩니다. 



간단하게 이론들만 설명해 보았습니다. 틀린 부분이 많을 것 같습니다. 틀린 부분은 댓글 부탁 드립니다. 즐거운 하루 되시기 바랍니다.


ps. 저도 아직 시작만 해보고 문서만 봐봤기 때문에 틀린 부분이 있을수 있습니다. 틀린 부분이 있다면 꼭 댓글로 부탁 드립니다. 다음 포스팅 부터는 설치 및 운영 관련 포스팅을 하도록 하겠습니다.

공유하기 링크
댓글