최근에 클라우드가 성행하게 되면서 클라우드 가상화 기술 중 하나인 도커(Docker)를 많은 기업에서 사용하고 있습니다.
이러한 도커(Docker)라는 개념을 정확히 알고 나면 머릿속에 많은 개념들이 잡혔습니다. 저 또한 처음에 도커(Docker)라는 의미가 머릿속에 들어오지 않기 때문에 도커를 진짜 모른다는 사람에게 설명한다는 식으로 이 포스팅으로 최대한 쉽게 풀어내려고 합니다.
도커란 무엇인가?
- 도커(Docker)의 개념
- 이미지(Image) 란?
- 컨테이너(Container) 란?
2013년 도커는 처음 등장한 컨테이너(Container) 기반 가상화 도구입니다. 도커는 Google Go Language로 개발되고 있으며 현재까지 지속적으로 업데이트를 지속하며 컨테이너 가상화 도구 중 핵심으로 잡아가고 있습니다.
도커는 리눅스 OS 기반이며 컨테이너 방식으로 관리를 통해 프로세스 실행 환경을 구축할 수 있게 해 줍니다.
프로세스 실행 환경을 도커에서는 이미지(Image)라고 부릅니다.
컨테이너의 이미지를 관리 및 실행을 통해 어느 환경에서도 컨테이너를 실행하여 쉽게 서버 실행 환경을 구축할 수 있도록 도와줍니다.
위에 설명한 글은 제가 알고 있는 지식을 풀어냈으나 정확하게 이해가 안 가실 수 있습니다.
각각의 의미를 추적하여 정확하게 이해가 갈 수 있도록 설명하겠습니다.
이미지(IMAGE) 란?
도커에서 프로세스가 사용하는 자원들(서버 프로그램, 소스 등)을 도커 이미지(Image)라 부릅니다.
컨테이너(Container) 생성하기 위하여 필요한 모든 파일과 설정값을 가지고 있는 것이라 생각하면 됩니다.
이미지의 특징
- 한 번 만들어진 이미지는 변하지 않음.
- 하나의 이미지로 여러 컨테이너 생성 가능
- 컨테이너가 삭제돼도 이미지는 삭제되지 않음.
- DockerHub를 통해 형상 관리 가능
- API를 통한 자동화 기능 가능
- 이미지 생성과정을 확인 및 수정 가능
컨테이너(Container) 란?
컨테이너는 네이버 백과사전에서는 아래와 같이 정의합니다.
화물 수송에 주로 쓰는, 쇠로 만들어진 큰 상자. 짐 꾸리기가 편하고 운반이 쉬우며, 안에 들어 있는 화물을 보호할 수 있는 장점이 있다.
우리 사전의 의미만 알고 있기 때문에 그림과 같은 컨테이너를 상상하실 겁니다. 우리가 컨테이너 없던 시절은 배에다가 짐을 싣을때 많은 짐을 쌓을 수가 없었습니다. 하지만 이제 종류/구분 별로 컨테이너에 짐을 실어 컨테이너만 싣어 운반하고 있어 관리 및 효율적인 측면에서 배송이 쉬워졌습니다.
마찬가지로 도커는 가상화 기술 중 하나로 도커의 컨테이너는 프로세스가 사용하는 자원들을 격리하는 환경을 컨테이너로써 만드는 것입니다. 그래서 그 컨테이너를 명령어를 통해 그 자원들을 그대로 사용할 수 있게 만들어 주는 역할을 합니다.
컨테이너 특징
- 이식성이 좋다
- 컨테이너의 격리공간이 있어 버전 간 관리에 있어 충돌이 없다.
- 빠른 배포와 서비스가 가능하여 애플리케이션 라이프사이클의 자동화가 가능하다
- 개발 환경을 실제 운영환경과 동일하게 사용이 가능하게 격리공간으로 활용해서 개발/운영 프로세스가 단순해진다.
'네트워크' 카테고리의 다른 글
공유기 포트포워딩(IPTIME) 하는법 (0) | 2021.06.18 |
---|