도커(6)
-
[Docker in Action] Software installation simplified (2)
Installation files and isolation 실제로 도커에서 우리가 "이미지"라고 부르는 개념은 "이미지 레이어"들의 조합(Collection)을 의미합니다. "이미지 레이어(layer)"는 파일과 파일 메타데이터의 조합으로, 하나의 "Atomic Unit"으로 기능합니다. 도커는 이 각각의 레이어를 이미지처럼 취급하며, 이렇게 이미지를 구성하는 이미지 레이어들과 이미지 사이의 관계를 이해하면 다음과 같은 핵심적인 질문들을 해결하는데 도움이 됩니다. What image properties factor into download and installation speeds? What are all these unnamed images that are listed when I use the doc..
2022.04.17 -
[Docker in Action] Software installation simplified (1)
Identifying Software 특정한 프로그램을 설치하기 위해서는 프로그램을 유일하게 식별할 수 있는 식별자가 필요합니다. 이 식별자는 프로그램의 이름, 사용하려고 하는 프로그램의 버전, 그리고 프로그램을 가져올 위치(Source)를 포함해야 합니다. (You would need a way to name the progam, specify the version that you want to use, and specify the source that you want to install it from.) 이전 포스팅에서 살펴보았듯, 도커는 이미지로부터 컨테이너를 생성합니다. 이 이미지는 컨테이너에서 사용 가능한 "파일"과 이미지의 정보를 가리키는 "메타데이터"로 구성됩니다. 이 메타데이터는 레이블, ..
2022.04.17 -
[Docker in Action] Running Software in containers (2)
Eliminating metaconflicts: Building a website farm 이전 포스팅에서 도커가 Process Namespace를 통해 프로세스를 격리시켜 컨테이너 안에서 동작하는 소프트웨어 간의 의도치 않은 충돌(conflicts)을 방지한다는 것을 살펴보았습니다. 하지만 컨테이너 간의 프로세스가 잘 격리되더라도 컨테이너의 이름과 같은 "metadata"끼리 충돌이 발생할 가능성이 여전히 존재하며, 이를 "metaconflicts" 라고 합니다. 예를 들어, 이전 포스팅에서 살펴보았던 Web, Mailer, Watcher(Agent) 구조에서 Web과 Watch를 Scale up 하는 경우, 각각의 컨테이너는 동일한 이름을 가질 수 없습니다. 컨테이너를 관리하기 위해서는 특정 컨테이너..
2022.04.10 -
[Docker in Action] Running Software in containers (1)
Controlling containers: Building a website monitor 이번 포스팅에서는 아래와 같은 웹 서비스 구조를 Docker Container를 통해 설계해보며, Docker Container에 대한 이해도를 높여보려고 합니다. 아래의 서비스 구조는 다음과 같이 동작합니다. NGINX 이미지로부터 컨테이너를 생성합니다. 이 컨테이너에서 웹 서비스를 호스팅 합니다. NGINX 컨테이너에 문제가 생긴 경우 (Service Down) Watcher Agent는 이를 감지하고 있다가 mailer에게 알려줍니다. mailer는 컨테이너에 문제가 생겼다는 사실을 Watcher Agent로부터 받아서 관리자의 계정으로 메일을 보냅니다. Creating and starting a new co..
2022.04.09 -
[Kubernetes in Action] First Steps with Docker And Kubernetes
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 도커와 쿠버네티스를 사용하여 간단한 애플리케이션을 Deploy 해보는 Chapter입니다. 간단한 애플리케이션을 컨테이너화 하고 쿠버네티스를 통해 배포해보면서 쿠버네티스의 동작 원리를 이해합니다. MacOS환경에서 진행되었으며 Docker, Kubernetes 등의 설치와 관련된 내용들에 대해서는 다루지 않습니다. Busybox Example 우선 도커 플랫폼이 어떻게 동작하는지 알아보기 위해 이미 만들어져있는 Busybox이미지를 사용해서 실행시켜 보도록 하겠습니다. # docker run : # tag를 명시하지 않으면 latest tag의 이미지를 찾습니다. docker run busybox:latest ..
2021.09.23 -
[Kubernetes in Action] Introducing Kubernetes
Kubernetes in Action 2nd Edition 을 정리한 글입니다. Overview Introduction Chapter인 만큼, Kubernetes 이전의 서비스 구조와 배포방법과 그에 따른 쿠버네티스의 필요성을 안내합니다. 그리고 쿠버네티스의 구성, 쿠버네티스를 알기 위해 반드시 알아야 하는 리눅스 컨테이너 시스템에 대해 설명하며, 리눅스 컨테이너 시스템을 활용한 대표적인 컨테이너 플랫폼인 도커(Docker)에 대해 살펴봅니다. Moving from monolithic apps to microservices 요즘, 거대한 monolithic application은 각각 그 도메인별로 나누어 작고 독립적인 단위로 배포가 됩니다. 이렇게 작게 나누어져 독립적으로 배포되고 기능하는 컴포넌트들을..
2021.09.21