로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

『트러블슈팅 도커: 도커의 활용과 문제 해결 방법』

   
지은이 바이브하브 콜리, 라즈딥 두아, 존 우튼   |   출판사 에이콘  |   발행일 2018년 08월 22일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 30,000원27,000원 10%
마일리지 5% 1,500원
발행일 2018-08-22
ISBN 1161751882 | 9791161751887
기타정보 번역서 | 348쪽
예상출고일 1일 (근무일기준)
배송비 무료배송
   
일반
   
 

★ 요약 ★



도커의 설치와 기본 관리 기능부터, 네트워킹, 쿠버네티스, 공용 클라우드에서 활용하는 방법에 이르기까지, 전반적인 도커 활용법과 이 과정에서 발생할 수 있는 다양한 문제를 해결하는 기법을 설명한다. 또한 문제를 사전에 방지하기 위한 팁과 도커 기반의 워크플로우를 구성하는 방법도 소개한다.





★ 이 책에서 다루는 내용 ★



■ 도커 관련 도구를 비롯해 뿐만 아니라 서비스, 마이크로서비스, N티어 애플리케이션을 설치하는 방법

■ 자동화 도구를 통해 재사용 가능하고 이식성 높은 컨테이너를 생성하는 방법

■ 컨테이너끼리 연결하거나 네트워킹하는 방법

■ 컨테이너에 볼륨을 안전하게 붙이는 방법

■ 도커 API 사용 및 문제 해결 방법

■ 공용 클라우드에 도커를 배치하는 과정에서 발생하는 문제의 해결 방법

■ 쿠버네티스(Kubernetes)를 통해 컨테이너를 쉽게 관리하는 방법





★ 이 책의 대상 독자 ★



숙련된 솔루션 아키텍트와 개발자, 프로그래머, 시스템 엔지니어, 관리자들이 도커 컨테이너화와 관련해 흔히 발생하는 문제를 해결할 때 도움 받을 수 있는 책이다. 자동화된 배치를 제공하는 프로덕션 수준의 도커 컨테이너를 구축하려면 도커의 기본 기능뿐만 아니라 고급 기능에 관련된 문제 해결 방법을 갖춰야 한다. 이 책의 내용은 리눅스 커맨드라인 문법, 단위 테스트, 도커 레지스트리, 깃허브뿐만 아니라 최신 컨테이너 호스팅 플랫폼과 클라우드 서비스 프로바이더(CSP)에 대해서도 깊이 있게 이해하고 있다는 가정하에 구성됐다. 또한 이 책을 통해 애초에 문제가 발생할 여지를 없애기 위한 여러 가지 방법과 도구도 소개한다.





★ 이 책의 구성 ★



1장. ‘컨테이너 및 도커 개요’에서는 컨테이너화의 기본 개념에 대해 애플리케이션 및 OS 기반 컨테이너 예시를 토대로 소개한다. 도커 기술의 특징과 장점, 도커 컨테이너의 라이프사이클에 대해 살펴본다.

2장. ‘도커 설치 방법’에서는 우분투, CoreOS, CentOS, 레드햇 리눅스, 페도라, 수세 리눅스(SUSE Linux) 등의 여러 리눅스 배포판에서 도커를 설치하는 방법을 단계별로 소개한다.

3장. ‘베이스 및 레이어드 이미지 빌드 방법’에서는 프로덕션 수준의 애플리케이션 컨테이너화에서 가장 핵심적인 작업인 이미지 빌드 방법을 소개한다. 이 과정에서 처음부터 직접 수작업으로 이미지를 빌드하는 방법도 소개한다. 그런 다음, 도커파일로 레이어드 이미지(layered image)를 빌드하는 방법과 도커파일에서 사용하는 커맨드도 자세히 살펴본다.

4장. ‘마이크로서비스 및 N티어 애플리케이션 설계’에서는 개발부터 테스트까지 자연스럽게 이어지도록 설계된 예제 환경을 살펴본다. 이러한 환경은 리소스 프로비저닝과 설정 작업을 수작업으로 처리하거나 그 과정에서 에러가 발생하는 것을 최소화하는 데 도움이 된다. 이 과정에서 마이크로서비스 애플리케이션을 테스트하고 자동화하고 배치하고 관리하는 방법도 간략히 소개한다.

5장. ‘컨테이너 기반 애플리케이션 다루기’에서는 도커 레지스트리에 대해 소개한다. 먼저 도커 허브를 이용한 도커 공용 리포지터리의 기본 개념과 다양한 사용자와 컨테이너를 공유하는 방법을 소개한다. 도커는 사설 도커 레지스트리를 구축하는 옵션도 제공한다. 이 장에서는 이러한 사설 레지스트리를 통해 도커 컨테이너를 조직 내부에서 푸시(push)하고 풀(pull)하고 공유(share)하는 방법을 살펴본다.

6장. ‘컨테이너 운영하기’에서는 모든 호스트 디바이스에 접근할 수 있는 프리빌리지드 컨테이너(privileged container)와 도커 컨테이너에서 하부 호스트를 관리하는 서비스 구동에 필요한 백그라운드 서비스를 실행하는 수퍼 프리빌리지드 컨테이너(super-privileged container)를 소개한다.

7장. ‘도커 컨테이너의 네트워킹 스택 관리하기’에서는 Docker0 브릿지를 통한 도커 네트워킹 메커니즘과 이에 관련된 설정 및 문제 해결 방법을 설명한다. 또한 도커 네트워크와 외부 네트워크 사이에서 발생하는 통신 문제를 해결하는 방법도 살펴본다. 그리고 위브(Weave), OVS, 플래널(Flannel), 그리고 도커에서 최근 추가된 오버레이 네트워크를 비롯한 다양한 네트워킹 기능을 통해 여러 호스트에 있는 컨테이너끼리 통신하는 방법도 살펴본다. 이러한 방법들을 모두 비교해보고 각각을 설정할 때 발생하는 문제를 해결하는 방법도 소개한다.

8장. ‘쿠버네티스로 도커 컨테이너 관리하기’에서는 쿠버네티스를 통해 도커를 관리하는 방법을 소개한다. 이 과정에서 다양한 배치 시나리오를 살펴보고 쿠버네티스를 베어메탈(Bare Metal) 머신, AWS, vSphere, 미니큐브(minikube) 등에 배치하는 과정에서 발생하는 여러 가지 문제를 해결하는 방법도 소개한다. 또한 쿠버네티스 포드(Kubernetes pod)를 효과적으로 배치하고, 쿠버네티스와 관련된 문제를 디버깅하는 방법도 살펴본다.

9장. ‘데이터 볼륨 사용법’에서는 도커와 관련된 데이터 볼륨과 스토리지 드라이버 개념을 자세히 살펴본다. 데이터 볼륨과 관련해 발생하는 문제를 해결하기 위한 네 가지 접근 방법을 소개하고 각각의 장단점을 분석한다. 첫 번째 방법인 도커 컨테이너 내부에 데이터를 저장하는 것은 가장 기본적인 방법이지만, 프로덕션 환경에서 데이터를 관리하고 처리하는 데 충분한 유연성을 제공하지 못한다. 두 번째와 세 번째 접근 방법은 데이터 전용 컨테이너나 호스트에 직접 저장하는 것이다. 네 번째 접근 방법은 서드파티 볼륨 플러그인인 플로커(Flocker)나 콘보이(Convoy)를 이용하는 것으로서 데이터를 별도의 블록에 저장하는데, 컨테이너를 한 호스트에서 다른 호스트로 옮길 때나 해당 컨테이너가 죽을 때도 데이터에 대한 신뢰성을 보장할 수 있다.

10장. ‘공용 클라우드(AWS와 애저)에 도커 배치하기’에서는 마이크로소프트 애저와 AWS에 도커를 배치하는 방법을 소개한다.





★ 지은이의 말 ★



도커(Docker)는 어디서나 안정적으로 실행되는 애플리케이션을 누구나 쉽게 개발하고 배치할 수 있게 해주는 오픈소스, 컨테이너 기반 플랫폼이다. 도커는 빠르고 간결하고 보안에 안전한 방식으로 최신 애플리케이션을 위한 확장성과 이식성이 뛰어난 환경을 구축하게 해준다. 최신 마이크로서비스나 N티어(N-tier) 애플리케이션의 컨테이너화와 관련해 도커가 독보적인 위치를 차지함에 따라, 프로덕션 수준의 배치를 위한 자동화된 워크플로우에서 발생하는 문제를 효과적으로 해결하는 능력이 중요해졌다.

1장. 컨테이너 및 도커 개요

__컨테이너 개념

____OS 컨테이너

____애플리케이션 컨테이너

____도커 자세히 들여다보기

____도커 컨테이너의 장점

____도커 라이프사이클

____도커 설계 패턴

__유니커널

__요약





2장. 도커 설치 방법

__우분투에 도커 설치하기

____사전 준비 사항

____패키지 정보 업데이트

____새로운 GPG 키 추가하기

____문제 해결

____새로운 도커 패키지 소스 추가하기

____우분투 패키지 업데이트

____리눅스 이미지 엑스트라 설치

____옵션: 앱아머 설치

____도커 설치

__레드햇 리눅스에 도커 설치하기

____커널 버전 확인

____얌 패키지 업데이트

____얌 리포지터리 추가하기

____도커 패키지 설치하기

____도커 서비스 구동하기

____도커 설치 테스트하기

____설치 파라미터 확인

____문제 해결

__AWS에 CentOS VM을 배치해 도커 컨테이너 구동하기

____커널 버전 확인

____얌 패키지 업데이트

____얌 리포지터리 추가하기

____도커 패키지 설치하기

____도커 서비스 구동하기

____도커가 제대로 설치됐는지 확인하기

____설치 파라미터 확인하기

__CoreOS에 도커 설치하기

____CoreOS 채널 설치하기

____문제 해결

__페도라에 도커 설치하기

____커널 버전 확인

____DNF로 설치하기

____얌 리포지터리에 추가하기

____도커 패키지 설치하기

__스크립트로 도커 설치하기

____도커 설치 스크립트 실행하기

__수세 리눅스에 도커 설치하기

____AWS에 수세 리눅스 VM 구동하기

____커널 버전 확인

____Containers-Module 추가하기

____도커 설치하기

____도커 서비스 구동하기

____도커가 제대로 설치됐는지 확인하기

____문제 해결

__요약





3장. 베이스 및 레이어드 이미지 빌드 방법

__컨테이너 이미지 빌드하기

____도커 레지스트리에서 제공하는 공식 이미지

____베이스 이미지 직접 빌드하기

____레이어드 이미지 빌드하기

__빌드한 이미지 테스트하고 디버깅하기

____문제 해결과 관련된 도커 세부 사항

____docker version

____docker info

____데비안/우분투에서 발생한 문제의 해결 기법

____설치된 도커 이미지 목록 확인하기

____도커 이미지를 수동으로 구동하기

____캐시에 저장된 파일시스템 상태 확인하기

____이미지 레이어 ID를 디버그 컨테이너로 활용하기

____보충 예제

____오류가 발생한 컨테이너 프로세스 검사하기

____그 밖에 다른 유용한 정보

____sysdig으로 디버깅하기

____트러블슈팅: 오픈 커뮤니티에 공헌하기

__이미지 빌드 자동화

____단위 테스트를 적용한 배치

____테스트를 적용한 배치 작업을 자동화하기

__요약





4장. 마이크로서비스 및 N티어 애플리케이션 설계

__과장 혹은 오만

__모놀리딕 아키텍처

__N티어 애플리케이션 아키텍처

____3티어 웹 애플리케이션 만들기

__마이크로서비스 아키텍처

____최신 애플리케이션 구조로 전환하는 방법

____마이크로서비스 관리하기

____마이크로서비스 관리하기

____N티어 애플리케이션을 여러 개의 이미지로 분할하기

____애플리케이션을 구성하는 여러 티어가 함께 작동하게 만들기

__요약





5장. 컨테이너 기반 애플리케이션 다루기

__도커 레지스트리를 통한 재배포

____도커 공용 리포지터리(도커 허브)

____사설 도커 레지스트리

__도커 허브에 이미지 올리기

____사설 로컬 도커 레지스트리 설치

____이미지를 다른 호스트로 옮기기

____이미지 서명을 통해 무결성 보장하기

__도커 트러스티드 레지스트리

__도커 UCP

__요약





6장. 컨테이너 운영하기

__프리빌리지드 컨테이너

____트러블슈팅 팁

__수퍼 프리빌리지드 컨테이너

____도커 컨테이너의 규모 확장 관련 트러블슈팅

__퍼핏

____이미지

____컨테이너

____네트워킹

____도커 컴포즈

____트러블슈팅 팁

__앤서블

____앤서블을 이용한 도커 자동화

____앤서블 컨테이너

____트러블슈팅 팁

__셰프

__요약





7장. 도커 컨테이너의 네트워킹 스택 관리하기

__도커 네트워킹

__docker0 브릿지

____도커 브릿지 설정 관련 문제의 해결 방법

__DNS 설정

__컨테이너와 외부 네트워크 통신에 관련된 문제의 해결 방법

____특정 컨테이너에서 SSH 접속을 하지 못하게 제한하기

____컨테이너 링크하기

__립네트워크와 컨테이너 네트워크 모델

____CNM 오브젝트

__오버레이 및 언더레이 네트워크 기반의 도커 네트워킹 도구

____플래널

____위브

____프로젝트 칼리코

__도커 엔진 스웜 모드에서 오버레이 네트워크 설정하기

____멀티호스트 도커 네트워킹 솔루션 비교

__도커에서 OVS를 사용하도록 설정하기

____단일 호스트에 OVS를 설정하는 과정에서 발생하는 문제의 해결 방법

____OVS를 여러 호스트에 설정하는 과정에서 발생할 수 있는 문제의 해결 방법

__요약





8장. 쿠버네티스로 도커 컨테이너 관리하기

__베어메탈 머신에 쿠버네티스 배치하기

__페도라에서 쿠버네티스를 직접 설정할 때 발생할 수 있는 문제의 해결 방법

__미니큐브로 쿠버네티스 배치하기

__UIAWS에 쿠버네티스 배치하기

__vSphere에 쿠버네티스 배치하기

__쿠버네티스 설정 과정에서 발생하는 문제의 해결 방법

__쿠버네티스 포드 배치하기

__프로덕션 환경에 쿠버네티스 배치하기

__쿠버네티스 디버깅에 관련된 이슈

__요약





9장. 데이터 볼륨 사용법

__도커 볼륨을 제대로 이해해서 문제 예방하기

__기본 활용 사례: 도커 컨테이너에 데이터 저장하기

__데이터 전용 컨테이너

____데이터 전용 컨테이너 생성하기

____호스트와 도커 컨테이너끼리 데이터 공유하기

__호스트에 매핑된 볼륨을 공유 스토리지에 백업하기

____플로커

____플로커 클라이언트 노드에서 설정할 작업

____콘보이

__도커 스토리지 드라이버 성능

____UFS 기초

____도커에서 디바이스 매퍼를 사용하는 방식

__요약





10장. 공용 클라우드(AWS와 애저)에 도커 배치하기

__아마존 ECS 아키텍처

__아마존 ECS 배치 과정에서 발생하는 문제의 해결 방법

__ECS 클러스터에 있는 도커 컨테이너 업데이트하기

__마이크로소프트 애저 컨테이너 서비스 아키텍처

__마이크로소프트 애저 컨테이너 서비스 관련 문제의 해결 방법

__AWS 및 애저용 도커

__요약

바이브하브 콜리(Vaibhav Kohli)

현재 VMware R&D 부서에서 근무하고 있으며, 명문 뭄바이 대학교에서 1년간 컴퓨터공학을 가르치기도 했다. VMware의 CTO 오피스에서 VMware IoT 프로젝트를 진행하고 있다. 「IEEE 트랜잭션」을 비롯한 일류 저널에 연구 논문을 여러 편 발표했고, VMware에서 컨테이너 기술과 관련해 여러 건의 특허도 출원했다. 참여한 빅데이터 프로젝트 중 일부는 전국 단위 프로젝트 쇼케이스 이벤트에서 최고 상을 받기도 했다. 여러 나라에서 워크숍, 해커톤, 트레이닝 세션, 트레이드 쇼를 수행했으며, IoT 및 도커 기술 관련 콘퍼런스의 발표자로도 명성을 날리고 있다. 또한 오픈소스 코드 기여자 및 리포지터리 관리자로도 적극적으로 활동하고 있으며, 도커와 쿠버네티스 관련 온라인 튜토리얼도 여러 차례 발표한 바 있다. 그동안 여러 고객과 기업을 대상으로 클라우드 네이티브 앱과 데브옵스 모델, 마이크로서비스 아키텍처로 이전하는 방법을 소개하는 데 기여했으며, 최근에는 도커 네트워킹 관련 책도 저술했다.

현재 최신 도커 및 쿠버네티스 기술에 관련된 인도 전역의 다양한 밋업 그룹을 관리하며 이끌고 있다.



라즈딥 두아(Rajdeep Dua)

클라우드와 빅데이터 분야에서 18년의 경력을 보유했다. 클라우드 인프라스트럭처와 머신 러닝 관련 프로젝트에 적극적으로 참여했을 뿐만 아니라, 이러한 기술을 세일즈포스, 구글, VMware 등에 홍보하는 활동도 여러 차례 수행했다. 현재 세일즈포스 인도 지사에서 개발자 관계 팀(Developer Relation)을 이끌고 있으며, 세일즈포스의 머신 러닝 팀 소속으로도 활동하고 있다.

도커 커뮤니티에 기여한 공로로 ‘도커 캡틴(Docker Captain)’으로 선정됐으며, 그동안 도커, 쿠버네티스, 안드로이드, 오픈스택, 클라우드 파운드리 등과 같은 프로젝트를 통해 오픈소스 커뮤니티에 기여했다. IIIT 하이데라바드, ISB, IIIT 델리, 푸네 공과 대학에서 클라우드와 빅데이터에 대해 강의하기도 했다.

러크나우 인도 경영 대학에서 IT 및 시스템 분야의 MBA를 취득했으며, 인도 파티알라의 타파르 대학교에서 BTech 학위를 취득했다.



존 우튼(John Wooten)

안전하고, 간결하고, 지속성 있는 클라우드 아키텍처를 설계하는 글로벌 오픈소스 클라우드 컨설팅 회사인 컨설티드(CONSULTED)의 설립자이자 CEO다. 선도적인 클라우드 솔루션 아키텍트이자 오픈 테크놀로지 전략가로서 기업과 정부 기관을 위한 공용, 사설, 하이브리드 클라우드 시스템을 설계하고, 테스트하고, 배치하고, 관리하는 것과 관련해 깊이 있고 풍부한 실전 경험을 쌓았다. 주 전문 분야는 리눅스 시스템 관리, 오픈스택 클라우드, 도커 컨테이너다. 오픈소스 활동가로도 활동하면서 다양한 오픈소스 프로젝트와 커뮤니티에서 매우 헌신적으로 활동하고 있다. 가장 최근에는 오픈소스 프로젝트와 애플리케이션에 대한 선도적인 리포지터리와 대표적인 리소스인 외펜소스드(ÖppenSourced)의 설립자이자 메인테이너로 활동하고 있다. 업무 외에는 자칭 서핑족으로서 다음에 탈 만한 파도를 쫓아다니거나 한적한 곳에서 하이킹과 캠핑을 즐긴다.





★ 옮긴이의 말 ★



도커로 대표되는 컨테이너 기술은 이를 주로 사용하는 분야에서는 더 이상 신선한 주제가 아닌, 일상 업무에서 당연히 사용하는 요소로 자리 잡은 분위기입니다. 도커 컨테이너의 등장 배경과 기본 개념, 기초 기능의 사용법을 다루는 글에 슬슬 하품이 나올 즈음, 다소 실용적인 관점에서 도커를 소개하는 이 책을 번역하게 됐습니다. 지난 몇 년 동안 도커는 설치 방법만 수차례 변경될 정도로 빠르게 성장하고 있습니다. 이러한 상황에서 이 책은 도커를 활용하다 부딪힐 만한 문제들을 중심으로 도커를 소개한다는 점이 신선했고, 개인적으로 네트워킹 부분을 상세히 설명하는 점이 마음에 들었습니다. 도커가 무엇인지 알고 싶은 분들부터 실전에서 마이크로서비스 구현을 고민하는 독자들까지 모두 만족시킬 만한 다양한 주제를 다루는 책입니다.

이번 번역도 빠른 이해와 정확한 전달에 우선순위를 뒀습니다. 지금 이 순간에도 수없이 밀려 들어오는 신기술을 빠르게 익혀 현업에서 활용할 수 있도록 문체와 용어를 현업에서 쓰이는 방향으로 번역했습니다. 그래서 원어의 음차 표기를 적절히 활용했습니다. 개인적으로는 100% 동의하지 않지만 현장에서 이미 굳혀진 용어가 다소 아쉽더라도 그대로 사용하기도 했습니다. 최선의 표현을 찾고자 항상 노력하지만, 독자 입장에서는 아쉬운 부분이 얼마든지 나올 수 있습니다. 이 점에 대해 미리 양해를 구합니다.





★ 옮긴이 소개 ★



남기혁

고려대학교 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임연구원으로 재직하고 있으며, 현재 ㈜프리스티에서 네트워크 제어 및 검증 소프트웨어 개발 업무를 맡고 있다. 에이콘출판사에서 출간한 『GWT 구글 웹 툴킷』(2008), 『해킹 초보를 위한 USB 공격과 방어』(2011), 『자바 7의 새로운 기능』(2013), 『iOS 해킹과 보안 가이드』(2014), 『Neutron 오픈스택 네트워킹』(2015), 『실전 IoT 네트워크 프로그래밍』(2015), 『애플 워치 WatchKit 프로그래밍』(2015), 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018) 등을 번역했다.

등록된 서평이 없습니다.
Solidworks Basic(솔리드웍스 베이직)(2017)...
원동현
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
허팝과 함께하는 유튜브 크리에이터 되기(YouTube 채널 운영부터 동영상 촬영 및 편집, 라이브 방송, 수익 창출까지!)...
허팝, 강전희, 안정기
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
SNS와 유튜브 1인 미디어를 위한 스마트폰 활용법...
김경수, 정인걸, 황세웅
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
체탄 기리다...
오쿠무라 하...
조슈아 블로...
 
전체평균(0)
회원평점   회원서평수 0
에이콘 출판사의 신간
『실전 금융 머신 러닝 완벽 분석』
마르코스 로페즈 데 프라도 저
36,000원
(10%↓+5%)
 
『Windows Debugging 2/e: WinDbg로 배우는 윈도우 디버깅』
최바울, 이태화, 김희준, 김성현 저
49,500원
(10%↓+5%)
 
『스칼라와 머신 러닝 2/e : 풍부한 설명으로 배우는 스칼라 머신 러닝 구현』
패트릭 R. 니콜라스 저
40,500원
(10%↓+5%)
 
『클라우드 네이티브 스프링: 클라우드 플랫폼을 위한 자바 마이크로서비스』
아제이 마하잔, 무니쉬 쿠마르 굽타, 시암 순다르 저
31,500원
(10%↓+5%)
 
『C++ 멀티스레딩 정복하기: 견고하면서도 병렬성과 병행성을 가지는 애플리케이션 작성법』
마야 포쉬 저
22,500원
(10%↓+5%)
 
이메일주소수집거부