Docker란 말은 많이 들었는데 어디에 어떻게 사용되는지 감을 잡기 어렵네요.
이번 게시글을 계기로 확실한 개념을 잡고 가도록 하겠습니다.
도커 설치는 다음 글에서 참조해주세요.
애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다.
Docker는 코드를 실행하는 표준 방식을 제공합니다.
가상 머신(VM)이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화합니다.
가상화 해당 하드웨어에 운영 체제를 직접 설치하는 대신 하이퍼바이저 소프트웨어를 설치하여 하나의 물리적 시스템을 가상 머신이라는 분리된 여러 가상 환경으로 분할하는 방식을 구현
컨테이너화 커널 하나에 격리된 여러 개의 사용자 공간 인스턴스가 포함될 수 있도록 애플리케이션 수준에서 이루어지는 가상화의 일종입니다. 이런 인스턴스를 컨테이너라고 합니다.
출처: https://aws.amazon.com/ko/docker/
출처: https://www.alibabacloud.com/ko/knowledge/difference-between-container-and-virtual-machine
출처: https://aws.amazon.com/ko/docker/
컨테이너를 만드는 데 필요한 모든 종속성 및 정보를 포함한 패키지입니다.
즉, 특정 프로세스를 실행하기 위한 모든 파일과 설정 값을 지닌 것으로 더이상의 의존성 파일을 컴파일이나 추가적인 설치가 필요 없는 상태의 파일을 의미합니다.
이미지를 컨테이너에 담고 실행을 시킨다면 해당 프로세스가 동작하게 됩니다.
실행 방식 예시: 어떤 애플리케이션을 이미지로 만든다면 리눅스만 설치된 컨테이너에 애플리케이션을 설치하고 그 상태를 그대로 이미지로 저장합니다.
Docker 이미지를 빌드하기 위한 지침을 포함하는 텍스트 파일입니다.
배치 스크립트처럼 첫 번째 줄에 지정된 기본 이미지에서 시작한 다음, 필요한 작업 환경이 완성될 때까지 지침에 따라 필요한 프로그램을 설치하고 파일을 복사하는 등의 작업을 수행합니다.
Dockerfile은 왜 필요할까요? 이 부분은 입문 단계인 저한테는 잘 와닿지 않았지만 익혀가는 중에 유용한 부분이라 생각해 좋은 내용이 있는 블로그 링크를 첨부합니다. Dockerfile 개요 및 간단한 작성법 가이드
컨테이너 이미지를 빌드하는 작업입니다.
해당 Dockerfile에서 제공하는 정보 및 컨텍스트에 외에도 이미지를 빌드하는 폴더의 추가 파일에 기반하여 수행됩니다.
docker build
Docker 이미지의 인스턴스입니다. 컨테이너는 단일 애플리케이션, 프로세스 또는 서비스의 실행을 나타냅니다.
아직 도커 시작 단계에선 여기까지만 알아보면 될 거 같습니다.
추가적인 용어에 대해선 아래 출처 링크를 참고해주세요.
출처: https://docs.microsoft.com/ko-kr/dotnet/architecture/microservices/container-docker-introduction/docker-terminology
감사합니다.
Text by Chaelin. Photographs by Chaelin, Unsplash.