1. Docker란?
편리한 관리 : 이미지만 관리하면 되며 이미지를 중앙 관리하여 체계적인 배포와 관리 가능. 이미지 생성 설정 또한 파일로 구성되어 버전 관리 시스템 활용 가능
|
2. 가상 머신과 Docker의 차이점
가상 머신과 Docker 컨테이너의 차이점에 대해 알아보겠습니다.
1) 가상 머신 <이미지 출처 : https://www.docker.com/resources/what-container> 컴퓨터 환경을 소프트웨어로 구현한 것으로 VMware, Microsoft Hyper-V(Virtual PC), Xen, 리눅스 KVM 등이 있습니다. 가상 머신에 리눅스 설치 후 각종 서버 프로그램, DB 설치 후 개발한 애플리케이션 및 웹사이트를 설치하여 실행할 수 있습니다. 이때 가산 머신 구축할 서버를 독자적으로 운영하거나 Amazon Web Services, Microsoft Azure, Google Cloud Platform등 서비스 형태로 제공되는 가상 머신을 이용할 수 있습니다. 현재는 전가상화(Full Virtualization : CPU의 가상화 자원을 이용한 전가상화)의 느린 속도 개선을 위해 반가상화(Paravirtualization : Xen) 방식이 많이 쓰이고 있습니다. 2) Docker <이미지 출처 : https://www.docker.com/resources/what-container> 반가상화보다 경량화된 방식으로 Docker 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해 설치가 가능합니다. OS 자원을 호스트와 공유하기 때문에 이미지 용량을 줄일 수 있습니다. 하드웨어를 가상화하는 계층이 없기 때문에 메모리 접근, 파일시스템, 네트워크 속도가 가상 머신에 비해 빠릅니다. 가상 머신과 달리 이미지 생성과 배포에 특화된 기능을 제공하며 Git과 같이 이미지 버전 관리 기능이 있습니다. |
3. Docker 이미지와 컨테이너
Docker를 구성하는 이미지와 컨테이너에 대해 알아보겠습니다.
1) 이미지 컨테이너 실행에 필요한 값들을 가지고 있으며 변하지 않습니다. 베이스 이미지는 리눅스 배포판의 유저랜드만 설치된 파일로 보통 리눅스 배포판 이름으로 존재합니다. 리눅스 배포판 유저랜드에 Redis나 Nginx 등이 설치된 베이스 이미지도 존재하여 사용자가 원하는 베이스 이미지를 선택하여 설치 할 수 있습니다. 이미지를 생성하면 이미지 아이디가 자동으로 생성되는데 16진수로 된 ID로 구분하고 각 이미지는 독립적입니다. Docker는 Layer 방식을 채택하고 있기 때문에 이미지가 변경되어도 바뀐 부분만 생성한 뒤 부모 이미지를 계속 참조하는 방식으로 동작합니다. 저장소에 올릴 땐 자식 이미지와 부모 이미지를 함께 올리고 받을때도 함께 받음 이후 내용이 바뀐 이미지만 주고 받음 2) 컨테이너 이미지를 실행한 상태입니다. 하나의 이미지를 이용하여 여러 개의 컨테이너를 만들 수 있고 이미 실행된 컨테이너에서 변경된 부분을 이미지로 생성 가능하여 다수의 서버에 설치, 배포가 편리합니다. 운영체제 관점에서 생각하면 이미지는 실행 파일, 컨테이너는 프로세스라고 할 수 있습니다. |
4. 인용 및 참고 자료
가장 빨리 만나는 Docker, 이재홍 지음 www.docker.com/resources/what-container |
이상 Docker 개념에 대해 간략하게 알아보았습니다.
다음 포스팅에서는 자주 사용하는 Docker 명령어와 Docker 이미지 생성, 컨테이너 실행 등 실제 실습을 통해 Docker를 정리해보겠습니다.
'공부 > web' 카테고리의 다른 글
MacOS에서 Kubernetes 환경 셋팅하기 (0) | 2021.05.28 |
---|---|
MacOS에서 Docker 사용해보기 (0) | 2021.04.30 |