지난번에 Docker에 대해 간략히 설명드렸습니다. 이번에는 Docker 아키텍처를 기반으로 한 동작 방식을 좀 더 깊이 있게 설명하고, 이후에는 Hyper-V 환경에서 Docker 배포 가이드를 제공할 예정입니다. 기회가 된다면 Docker Swarm과 Kubernetes(K8S)도 함께 다뤄보겠습니다.
[Docker] Docker 란? #1
Docker (이미지 다운로드) 는 애플리케이션을 빠르고 쉽게 테스트하고 배포할 수 있도록 도와주는 오픈 소스 플랫폼입니다. Docker는 컨테이너(Container)라는 기술을 사용하여 애플리케이션과 필요한
coxfactor-tech.tistory.com
Client
사용자가 Docker 명령어를 실행하는 곳입니다. ex) docker build, docker pull, docker run 등의 명령어가 여기에서 실행됩니다. 이 명령어는 Docker Daemon에게 요청을 보내어, 실제로 작업이 이루어지도록 합니다.
Host
Docker가 설치된 컴퓨터나 서버입니다. Docker는 이 호스트에서 애플리케이션을 컨테이너로 실행합니다.
Docker Daemon
Docker의 핵심 서비스로, Client로부터 명령을 받아 컨테이너, 이미지, 네트워크 등의 관리를 담당합니다.
Daemon은 명령을 받으면 이미지를 생성하고, 컨테이너를 실행시키며, 이 과정을 통해 애플리케이션을 실행합니다.
Images
실행 가능한 애플리케이션의 설정 및 필요한 라이브러리, 코드 등을 포함한 패키지입니다. 예를 들어, Ubuntu, Nginx, MySQL, Zabbix 같은 애플리케이션들이 Docker 이미지로 제공됩니다. 이미지는 컨테이너를 만들기 위한 틀과 같은 역할을 합니다.
Containers
이미지를 기반으로 실행되는 애플리케이션의 인스턴스입니다. 각각의 컨테이너는 독립된 환경에서 실행되며, 애플리케이션을 격리된 상태로 동작하게 합니다. 컨테이너는 필요할 때 쉽게 생성하고 삭제할 수 있습니다.
Registry
Docker 이미지 저장소입니다. Docker Hub 같은 레지스트리에서 이미지를 다운받을 수 있습니다. 또한 사용자가 직접 만든 이미지를 업로드하고 공유할 수 있습니다.
이미지 생성(Docker Build) → 이미지 가져오기(Docker Pull) → 이미지를 컨테이너 실행(Docker Run)
1. Docker Build
Docker build 명령어는 이미지를 생성합니다. 예를 들어, Zabbix 애플리케이션을 실행하기 위해 필요한 환경을 갖춘 이미지를 만들 때 사용합니다. 이 때 필요한 Dockerfile을 작성하여 빌드 과정을 정의합니다.
2. Docker Pull
Docker pull은 레지스트리에서 이미 만들어진 이미지를 호스트로 가져옵니다. 예를 들어, Zabbix 이미지를 Docker Hub에서 가져올 수 있습니다.
위 그림에서 Registry에서 이미지를 가져오는 흐름(녹색 점선)을 나타냅니다.
3. Docker Run
Docker run 명령어는 다운로드하거나 생성한 이미지를 기반으로 컨테이너를 실행합니다. Zabbix 이미지를 다운로드한 후, 이를 실행하여 모니터링 시스템을 실제로 구동하는 과정입니다.
위 그림에서 컨테이너 실행이 Docker Daemon을 통해 이루어지는 것을 보여줍니다.
쉽게 요약하면, 클라이언트는 Docker build, Docker pull, Docker run 명령을 통해 이미지를 만들고 다운로드한 후, 해당 이미지를 컨테이너로 실행하여 애플리케이션을 구동합니다. 이 모든 과정은 Docker Daemon이 처리하며, 이미지는 Registry에서 가져오거나 직접 빌드할 수 있습니다.
'Server > Docker' 카테고리의 다른 글
[Docker] Portainer GUI 로 Docker 운영(접속 및 Image 생성) #2 (30) | 2024.11.25 |
---|---|
[Docker] Docker Hub 에서 Portainer Image Pull Container Run #1 (17) | 2024.11.15 |
[Docker] Docker Hub, File, Image, Container 란? #4 (1) | 2024.11.06 |
[Docker] Ubuntu 24.04 에서 Docker Install #3 (Hyper-V) (1) | 2024.10.28 |
[Docker] Docker 란? #1 (24) | 2024.07.31 |