컨테이너

컨테이너

    Docker #6. 스웜을 사용한 실전 어플리케이션 개발 - Part1

    이번 포스팅은 책의 CH04. 스웜을 이용한 실전 어플리케이션 개발 내용을 공부하고 정리한 내용이다. 도커를 사용하여 어플리케이션을 개발하는 흐름을 이해하고 스웜을 이용한 배포에 초점을 맞추어서 자세한 코드를 다 확인하면서 가지는 않음을 미리 명시한다. 아키텍처 구성 간단한 TODO App을 만들어 보려고 한다. 대략적인 아키텍처는 다음과 같다. 데이터베이스로는 MySQL, API는 Restful API(예제 코드는 Go 언어 기반), 웹 어플리케이션(Vue / React), Nginx 프록시 서버 이렇게 네 가지로 크게 구분해서 구성 요소를 생각해 볼 수 있다. Nginx의 경우 어플리케이션 프론트엔드 서버 및 API 앞단의 리버스 프록시 역할을 하며, 캐싱이나 라우팅 등에도 사용이 된다. 이전 포스팅..

    [C++] Ch10. STL - 벡터(Vector)

    이번 포스팅에서는 STL의 벡터(Vector)에 대해서 정리해 보려고 한다. C++의 표준 템플릿 라이브러리(STL)는 C++ 프로그래밍에서 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리이다. STL은 일반적으로 다음 세 가지 라이브러리를 의미한다. 컨테이너(Container) : 임의 타입의 객체를 보관. 객체를 저장하는 자료구조 시퀀스 컨테이너(Sequence Container) : Array, Vector, List, Deque 협력 컨테이너(Associative Container) : Set, Multiset, Map, Multimap 반복자(Iterator) : 포인터와 유사한 개념. 컨테이너에 보관된 원소에 접근하여 다음 원소를 가리킴. 순회 알고리즘(Algorithm) : 반복자..

    Docker #5. 여러 대의 도커 호스트를 다뤄보기

    이번 실습은 여러 호스트를 다루면서 컨테이너를 배치하는 방법에 대해서 다뤄보는 튜토리얼이다. 이번 튜토리얼에서는 도커 스웜(docker swarm)을 사용한다. 도커 스웜은 여러 도커 호스트를 클러스터로 묶어주는 컨테이너 오케스트레이션 도구이다. 여러 도커 호스트를 사용하여 확장성 있는 어플리케이션을 만들기 위해서는 (거의) 필수적이다. 오케스트레이션 도구를 사용하면 어느 도커 호스트에 어떤 컨테이너를 배치해야 하는지, 서로 다른 호스트에 위치한 컨테이너 간의 통신은 어떻게 해야 하는지 등의 조율을 수월하게 할 수 있다. 여기서 잠깐, 도커에서 쓰이는 다양한 도구들의 역할을 복습하고 가자 도커 컴포즈(docker-compose) : 여러 컨테이너로 구성된 도커 어플리케이션을 관리 (주로 단일 호스트) 도..

    Docker #3. 데이터 볼륨(Data Volume)과 데이터 볼륨 컨테이너(Data Volume Container)

    이전 포스팅에서 도커 이미지가 무엇인지, 컨테이너가 무엇인지를 알아 보았다. 이번에는 좀 더 실용적인 방법에 대한 고민과 함께 퍼시스턴트 데이터와 볼륨에 대해서 연결해서 설명해 보려고 한다. 도커를 사용해 시스템을 구성한다는 것은 대부분 자신이 만든 어플리케이션의 컨테이너는 물론이고 도커 허브에 공개된 어플리케이션이나 미들웨어 이미지로 만든 컨테이너가 서로 협력하는 스택을 구축하는 것이다. 실제 운영에서는 어플리케이션을 컨테이너 안에 어떻게 배치하는지가 매우 중요하다. 컨테이너 하나가 어느 정도의 책임을 맡는 것이 적정 수준일까? 단일 컨테이너의 시스템 내 비중을 어떻게 결정하는지 알아보자. 정기적으로 어떤 작업을 실행해야 하는 컨테이너가 있다고 가정하자. 스케줄러는 직접 갖춘 어플리케이션도 있겠지만, ..

    Docker #2. 도커 이미지와 컨테이너(images and containers)

    오늘은 도커 이미지와 컨테이너에 대해서 정리해 보고자 한다. 이번 내용은 도커 공식 사이트에서 도커를 설치하고 난 후 진행한다. 회원가입 및 설치는 그렇게 어렵지 않으니 아마 쉽게 할 수 있을 것이다. 설치를 마치고 나서 커맨드에 $ docker version을 입력후 엔터를 누르면 아래와 같이 나온다. 도커 이미지와 컨테이너는 도커를 이해하는데 가장 기본적인 개념이므로 확실하게 짚고 넘어가야 한다. 각각의 역할을 간단하게 정리하면 다음과 같다. 도커 이미지 : 도커 컨테이너를 구성하는 파일 시스템과 실행할 어플리케이션 설정을 하나로 합친 것으로, 컨테이너를 생성하는 템플릿 역할을 한다. 도커 컨테이너 : 도커 이미지를 기반으로 생성되며, 파일 시스템과 어플리케이션이 구체화되어 실행되는 상태이다. 간단한..

    Docker #1. 도커(Docker)란 무엇인가?

    이번 포스팅을 시작으로 도커를 처음 시작하는 사람이 알아야 할 내용 및 실습 방법에 대한 포스팅을 해 보려고 한다. 도커란 무엇인가? 도커는 컨테이너형 가상화 기술을 구현하기 위한 상주 어플리케이션과 이 어플리케이션을 조작하기 위한 명령행 도구로 구성되는 프로덕트이다. 어플리케이션 배포에 특화되어 있기 때문에 어플리케이션 개발 및 운영을 컨테이너 중심으로 할 수 있다. 웹 어플리케이션을 개발한다고 가정해 보자. 로컬에 Apache나 Nginx 같은 웹 서버를 구축한다고 생각해 보자. 가상 환경에 운영 환경과 같은 운영 체제를 설치하고 환경 구축 작업을 해야 한다. 이 때 로컬 환경에 도커만 설치하면 몇 줄짜리 구성 파일과 명령어 한 줄로 어플리케이션이나 미들웨어가 이미 갖추어진 테스트용 가상환경(도커 컨..