반응형

🐳 Docker

Docker는 컨테이너화된 어플리케이션을 개발하고 배포, 실행시키는 오픈 소스 플랫폼이다.
Docker의 실행 동작은 격리된 환경에서 어플리케이션을 패키징하고 실행하는 기능을 제공하는데, 서버의 OS에 영향을 받지 않고 도커 내부의 별도의 환경에서 구동되기에 Docker를 사용하게 되면 어떤 인프라 환경에서 분리되어 빠르게 배포하고 구동시킬 수 있게된다.

📝 Docker Architecture

Docker는 서버-클라이언트 아키텍처를 사용하는데, Docker Client는 컨테이너를 구축, 실행 및 배포하는 무거운 작업을 수행하는 Docker Daemon과 통신한다. 도커 클라이언트와 데몬은 동일한 시스템에서 구동될수도 있고 원격으로 연결될 수도 있으며 소켓 또는 Rest API를 통해 통신한다. Docker Compose로 어플리케이션을 구성하여 컨테이너를 작업할 수도 있다.

🖊️ Docker Daemon

도커 데몬은 Docker API요청을 수신하고 이미지, 컨테이너, 네트워크와 같은 도커 객체를 관리한다.

🖊️ Docker Client

도커 명령을 보내는 사용자들로 docker run과 같은 명령을 보내면 dockerd가 수행한다. docker명령은 Docker API를 사용하며 도커 클라이언트는 2개 이상의 데몬과 통신할수 있다.

🖥️ Docker Desktop

Mac, Windows, Linux환경에서 컨테이너화된 어플리케이션을 구축하고 공유할 수 있도록 도와주는 GUI어플리케이션으로 Docker Daemon, Docker Compose, Kubernetes등이 포함되어 있다.

🛠️ Docker Object

Docker를 사용하게 되면 컨테이너, 이미지, 네트워크, 볼륨, 플러그인 등의 객체들을 사용하게 되는데, 해당 객체들에 대한 내용을 확인해본다.

📦 Container

실행 가능한 이미지 인스턴스를 말하며, 어플리케이션을 실행하거나 생성, 중지, 이동 등을 할 수 있다.
도커 컨테이너는 자체 파일 시스템과 환경을 가지고 있으며 다른 컨테이너로부터 독립적인 환경으로 동작하는데, 각각의 어플리케이션이 서로에게 영향을 주지 않고 독립적으로 실행할 수 있다.

🏞️ Image

도커 이미지는 도커 컨테이너를 생성하기 위한 읽기 전용 템플릿이다. 한마디로 생성하고자 하는 어플리케이션을 뜻한다. Apache Tomcat이 될 수도 있고 Java Nginx 등등 어플리케이션을 이미지로 생성하고 사용할 수 있는데, 자신만의 이미지도 생성이 가능해서 사용하고자 하는 어플리케이션의 설정을 미리 처리해둔 상태로 이미지를 생성해서 사용할 수도 있다.
예를 들면, 기본 Tomcat의 기본포트를 처음부터 80으로 세팅해두어서 매번 배포시마다 굳이 포트부분의 설정을 바꿀필요가 없어진다.
이런 경우에는 Dockerfile을 통해 이미지를 빌드하고 생성할 수 있다.


참고 url: https://docs.docker.com/get-started/overview/

반응형