이번 글은 요즘 개발자들 사이에서 가장 많이 이용되고있는 도커에 대해서 알아보자.
도커(docker)란?
어플리케이션 실행에 필요한 모든 리소스들을 도커안의 컨테이너에 담아놓고 관리하는 툴입니다.
그렇다면 컨테이너는 무엇인가?
출처 - https://www.youtube.com/watch?v=LXJhA3VWXFA
어플리케이션을 실행하기 위해서는 소스코드뿐만 아니라 환경설정도 중요한데요
자신의 컴퓨터에서 돌아가는 어플리케이션이 왜 서버에서 실행을 하면 안되는 문제를 해결하기 위해
출처 - https://www.youtube.com/watch?v=LXJhA3VWXFA
위의 그림과 같이 컨테이너 내부에 어플리케이션의 실행에 필요한 모든 리소스를 통으로 넣어 저장하는 것이다.
이렇게 도커를 이용하면 개인 컴퓨터와 서버간의 환경설정의 차이 없이 동일하게 어플리케이션을 실행할 수 있습니다.
그렇다면 도커의 컨테이너와 VM이 같은 것 아닌가요? 라고 질문할 수 있는데
도커와 VM(Virtual Machine) 의 차이
출처 - https://www.youtube.com/watch?v=LXJhA3VWXFA
위의 사진을 보면 왼쪽이 VM이고 오른쪽이 Container를 이용한 방식입니다.
VM은 하드웨어 인프라환경 위에 Hypervisor(vmware, virtualBox 등)의 소프트웨어를 이용하여 가상의 머신을
만들 수 있습니다. 한 어플리케이션을 각각 다른 환경에서 구동을 하기 위해선 가상머신을 이용하여 환경에 맞는 OS를 설치해줘야 했어서 상당히 무겁습니다.
Container는 VM에서 좀 더 경량화 되었다고 볼 수 있는데요
각각 상대 OS위에 ContainerEngine(docker 등)만 설치해주면 각각 다른 환경에서 어플리케이션을 실행할 수 있습니다.
Docker의 3대 구성요소에 대해 알아보자
출처 - https://www.youtube.com/watch?v=LXJhA3VWXFA
1. Dockerfile
도커파일은 컨테이너를 어떻게 만들어야 하는지에 대한 레시피같은 느낌인데요
- 어플리케이션을 구동하기 위해서 꼭 필요한 파일들은 무엇이 있는지
- 어떤 프레임워크나 라이브러리를 설치해야 하는지
- 필요한 환경변수에 대한 설정
- 어떻게 구동해야하는지에 대한 스크립트
2. Image
어플리케이션을 실행하는데 필요한 코드, 런타임환경, 시스템 툴, 시스템 라이브러리 등 모든 셋팅들이 포함되어 있습니다.
3. Container
만들어놓은 이미지(어플리케이션)을 컨테이너 내부에서 실행할 수 있습니다.
최종적으로
위의 그림과 같이 개인pc에서 어플리케이션 실행에 필요한 Image를 생성한 후 Container Registry에 커밋하고
커밋한 Image를 서버에서 땡겨받아 실행할 수 있고 그 과정을 도커라는 컨테이너 엔진이 관여합니다.
위 글은 드림코딩이라는 유튜버분의 강의를 참고하여 작성되었습니다.
'IT지식 > Computer Science' 카테고리의 다른 글
네트워크 토폴로지란? (0) | 2024.12.30 |
---|---|
네트워크와 트래픽에 관해서 알아보자 (0) | 2024.12.30 |
CI/CD 파이프라인 구축이란? (0) | 2024.12.28 |
클라우드 컴퓨팅에 대해 알아보자. (0) | 2024.12.27 |
클라우드란 무엇인가? (0) | 2024.12.27 |