2018.11.08

컨테이너를 쉽고 빠르게··· 도커용 필수 도구 8가지

Serdar Yegulalp | InfoWorld
오늘날에는 도커 관련된 기술 개발 속도가 너무 빨라 눈 깜박할 사이에 흥미로운 관련 툴을 놓치고 지나갈 수도 있다. 도커 자체만이 아니라 도커를 기반으로 하거나 도커를 지원하는 많은 유용한 프로젝트가 활발하게 진행되고 있다. 많은 경우 이들 툴은 도커 기술과 배포 관련 작업에서 상당한 이점을 제공한다. 여기 오픈소스 툴 8가지를 소개한다. 도커를 활용해 기능을 강화했거나 혹은 도커 자체를 크게 개선해준다.

Credit: Getty Images Bank

더스티
더스티(Dusty)는 MIT 라이선스로 배포하는 도커 지원 개발 환경이다. 도커 컴포즈(Docker Compose)나 컨테이너 관리용 베이그런트(Vagrant)를 더 쉽게 사용할 수 있도록 한다. 예를 들어 더스티는 도커 컴포즈보다 더 단순한 모델을 갖고 있으며, 베이전트에 비해 버전 기반 앱 독립성 격리와 서비스 업데이트를 더 잘 지원한다. 또한, 실행 환경을 위한 스펙의 일부로 테스트를 생성하고, 일반적인 다단계 절차를 호출된 스크립트 내에 쉽게 추가할 수 있다.

고커라이즈
고(Go) 언어를 기반으로 한 앱이다. 고커라이즈(Gockerize)는 BSD 라이선스로 제공되는 툴로, 정적 고 바이너리를 만들어 고 컨테이너에 이를 패키지화한다. 에어로FS(AeroFS) 개발자의 또 다른 작업물로, 고 표준 라이브러리에 패치 세트를 자동으로 적용하는 기능 등을 지원한다. 자주 쓰이는 기능은 아니지만 꼭 필요한 때는 '구세주' 같은 역할을 하는 툴이다. 고커라이즈는 외부 리소스에 거의 의존하지 않는다. 오직 고, 도커 1.5 이상 버전, 배시(Bash) 쉘 만 있으면 된다.

하이퍼
하이퍼(Hyper)는 도커 이미지를 어떤 하이퍼바이저에서든 실행할 수 있게 하는 '하이퍼바이저 독립적' 툴이다. 이를 위해 도커와 QEMU, 젠(Xen)을 사용한다. 이 툴의 개발자는 하이퍼가 28MB 정도의 매우 적은 리소스를 사용하면서도 VM보다 빠른 컨테이너의 속도를 더 높여준다고 설명한다. 높은 성능과 애플리케이션 강제 격리도 지원한다. 하이퍼가 안성맞춤인 사례 중 하나는 멀티 테넌트의 도커 기반 애플리케이션이다.

도커 컴포즈 UI
도커 컴포즈 UI(Docker Compose UI)는 MIT 라이선스 프로젝트다. 파이썬의 플래스크(Flask) 프레임워크를 이용해 개발했으며, 도커 컴포즈를 웹 기반 UI로 제공한다. 컨테이너를 로컬 혹은 리모트 호스트로 실행할 수 있으며, 필요에 따라 도커 컴포즈 UI 자체를 도커 컨테이너 내에서 사용할 수도 있다. 단, 도커 컴포즈 UI와 함께 제공되는 일부 데모 프로젝트는 확장할 수 없음에 유의하자. 이미 사용된 포트간 충돌 문제 때문이다.


키트매틱
때로는 GUI만 필요할 때가 있는데, 바로 이럴 때 사용할 수 있는 것이 키트매틱(Kitematic)이다. 맥OS나 우분투 리눅스, 윈도우에서 도커 컨테이너를 관리할 수 있는 GUI를 제공한다. 이밖에도 다양한 편의 기능이 있는데, 파일 시스템을 통해 자동으로 컨테이너 볼륨 데이터를 보여주거나, 내장 CLI를 도커에 제공하거나, 도커에 변화된 부분을 적용하기 위해 자동으로 현재 상태를 동기화하는 기능(새 컨테이너 이미지를 추가할 때 요긴하다)이 대표적이다.

로그스파우트
유닉스 세계에는 큰 문제를 풀기 위해 작은 프로그램들을 통합하는 오랜 '전통'이 있다. 로그스파우트(Logspout)는 이런 철학을 도커 컨테이너의 로그 관리에 적용했다. 모든 컨테이너에서 수집된 로그(주로 stdoutstderr)를 정해 놓은 호스트로 보낸다. 이렇게 모아진 로그는 HTTP 스트림을 읽는 방식으로 실시간으로 볼 수 있다.

엘시
엘시(Elsy)는 도커와 도커 컴포즈를 이용한 단독 멀티 랭기지 개발 툴이다. 다양한 환경에 걸쳐 계속 사용할 수 있는 소프트웨어 리파지토리를 만들 수 있다. 또한, 어떤 언어를 사용하든 상관없이 툴 실행을 최소화할 수 있다. 가장 특징적 기능 중 하나는 blackbox-test다. 이를 이용하면 어떤 컨테이너든 실제 업무 환경을 반영한 방식으로 테스트할 수 있다. 예를 들어 데이터베이스가 필요한 서비스는 이를 위해 설정된 데이터베이스 컨테이너를 생성해 테스트하고, 테스트가 끝나면 엘시가 자동으로 테스트 환경을 삭제한다.

헤비터스
헤비터스(Habitus)도 도커 기반 빌드 툴이다. 도커파일과 build.yml 파일을 사용해 다단계 컨테이너 빌드를 생성한다. 여기에는 필요한 명령을 원하는 만큼 추가할 수 있다. 빌드의 각 단계는 일부 이전 단계에 의존해 생성할 수 있으므로, 복잡한 다단계 의존성이 있는 작업도 정확하게 실행된다. 또한, 헤비터스를 이용하면 이미지 내에 흔적을 남기지 않고 빌드 프로세스 내에 특정 작업을 추가할 수 있다. ciokr@idg.co.kr 

2018.11.08

컨테이너를 쉽고 빠르게··· 도커용 필수 도구 8가지

Serdar Yegulalp | InfoWorld
오늘날에는 도커 관련된 기술 개발 속도가 너무 빨라 눈 깜박할 사이에 흥미로운 관련 툴을 놓치고 지나갈 수도 있다. 도커 자체만이 아니라 도커를 기반으로 하거나 도커를 지원하는 많은 유용한 프로젝트가 활발하게 진행되고 있다. 많은 경우 이들 툴은 도커 기술과 배포 관련 작업에서 상당한 이점을 제공한다. 여기 오픈소스 툴 8가지를 소개한다. 도커를 활용해 기능을 강화했거나 혹은 도커 자체를 크게 개선해준다.

Credit: Getty Images Bank

더스티
더스티(Dusty)는 MIT 라이선스로 배포하는 도커 지원 개발 환경이다. 도커 컴포즈(Docker Compose)나 컨테이너 관리용 베이그런트(Vagrant)를 더 쉽게 사용할 수 있도록 한다. 예를 들어 더스티는 도커 컴포즈보다 더 단순한 모델을 갖고 있으며, 베이전트에 비해 버전 기반 앱 독립성 격리와 서비스 업데이트를 더 잘 지원한다. 또한, 실행 환경을 위한 스펙의 일부로 테스트를 생성하고, 일반적인 다단계 절차를 호출된 스크립트 내에 쉽게 추가할 수 있다.

고커라이즈
고(Go) 언어를 기반으로 한 앱이다. 고커라이즈(Gockerize)는 BSD 라이선스로 제공되는 툴로, 정적 고 바이너리를 만들어 고 컨테이너에 이를 패키지화한다. 에어로FS(AeroFS) 개발자의 또 다른 작업물로, 고 표준 라이브러리에 패치 세트를 자동으로 적용하는 기능 등을 지원한다. 자주 쓰이는 기능은 아니지만 꼭 필요한 때는 '구세주' 같은 역할을 하는 툴이다. 고커라이즈는 외부 리소스에 거의 의존하지 않는다. 오직 고, 도커 1.5 이상 버전, 배시(Bash) 쉘 만 있으면 된다.

하이퍼
하이퍼(Hyper)는 도커 이미지를 어떤 하이퍼바이저에서든 실행할 수 있게 하는 '하이퍼바이저 독립적' 툴이다. 이를 위해 도커와 QEMU, 젠(Xen)을 사용한다. 이 툴의 개발자는 하이퍼가 28MB 정도의 매우 적은 리소스를 사용하면서도 VM보다 빠른 컨테이너의 속도를 더 높여준다고 설명한다. 높은 성능과 애플리케이션 강제 격리도 지원한다. 하이퍼가 안성맞춤인 사례 중 하나는 멀티 테넌트의 도커 기반 애플리케이션이다.

도커 컴포즈 UI
도커 컴포즈 UI(Docker Compose UI)는 MIT 라이선스 프로젝트다. 파이썬의 플래스크(Flask) 프레임워크를 이용해 개발했으며, 도커 컴포즈를 웹 기반 UI로 제공한다. 컨테이너를 로컬 혹은 리모트 호스트로 실행할 수 있으며, 필요에 따라 도커 컴포즈 UI 자체를 도커 컨테이너 내에서 사용할 수도 있다. 단, 도커 컴포즈 UI와 함께 제공되는 일부 데모 프로젝트는 확장할 수 없음에 유의하자. 이미 사용된 포트간 충돌 문제 때문이다.


키트매틱
때로는 GUI만 필요할 때가 있는데, 바로 이럴 때 사용할 수 있는 것이 키트매틱(Kitematic)이다. 맥OS나 우분투 리눅스, 윈도우에서 도커 컨테이너를 관리할 수 있는 GUI를 제공한다. 이밖에도 다양한 편의 기능이 있는데, 파일 시스템을 통해 자동으로 컨테이너 볼륨 데이터를 보여주거나, 내장 CLI를 도커에 제공하거나, 도커에 변화된 부분을 적용하기 위해 자동으로 현재 상태를 동기화하는 기능(새 컨테이너 이미지를 추가할 때 요긴하다)이 대표적이다.

로그스파우트
유닉스 세계에는 큰 문제를 풀기 위해 작은 프로그램들을 통합하는 오랜 '전통'이 있다. 로그스파우트(Logspout)는 이런 철학을 도커 컨테이너의 로그 관리에 적용했다. 모든 컨테이너에서 수집된 로그(주로 stdoutstderr)를 정해 놓은 호스트로 보낸다. 이렇게 모아진 로그는 HTTP 스트림을 읽는 방식으로 실시간으로 볼 수 있다.

엘시
엘시(Elsy)는 도커와 도커 컴포즈를 이용한 단독 멀티 랭기지 개발 툴이다. 다양한 환경에 걸쳐 계속 사용할 수 있는 소프트웨어 리파지토리를 만들 수 있다. 또한, 어떤 언어를 사용하든 상관없이 툴 실행을 최소화할 수 있다. 가장 특징적 기능 중 하나는 blackbox-test다. 이를 이용하면 어떤 컨테이너든 실제 업무 환경을 반영한 방식으로 테스트할 수 있다. 예를 들어 데이터베이스가 필요한 서비스는 이를 위해 설정된 데이터베이스 컨테이너를 생성해 테스트하고, 테스트가 끝나면 엘시가 자동으로 테스트 환경을 삭제한다.

헤비터스
헤비터스(Habitus)도 도커 기반 빌드 툴이다. 도커파일과 build.yml 파일을 사용해 다단계 컨테이너 빌드를 생성한다. 여기에는 필요한 명령을 원하는 만큼 추가할 수 있다. 빌드의 각 단계는 일부 이전 단계에 의존해 생성할 수 있으므로, 복잡한 다단계 의존성이 있는 작업도 정확하게 실행된다. 또한, 헤비터스를 이용하면 이미지 내에 흔적을 남기지 않고 빌드 프로세스 내에 특정 작업을 추가할 수 있다. ciokr@idg.co.kr 

X