이미 소장하고 있다면 판매해 보세요.
|
1부 도커 컨테이너와 이미지 이해하기
1장 시작하기 전에 1.1 컨테이너가 IT 세상을 점령한 이유 1.2 대상 독자 1.3 실습 환경 구축하기 1.4 바로 활용하기 2장 도커의 기본적인 사용법 2.1 컨테이너로 Hello World 실행하기 2.2 컨테이너란 무엇인가? 2.3 컨테이너를 원격 컴퓨터처럼 사용하기 2.4 컨테이너를 사용해 웹 사이트 호스팅하기 2.5 도커가 컨테이너를 실행하는 원리 2.6 연습 문제: 컨테이너 파일 시스템 다루기 3장 도커 이미지 만들기 3.1 도커 허브에 공유된 이미지 사용하기 3.2 Dockerfile 작성하기 3.3 컨테이너 이미지 빌드하기 3.4 도커 이미지와 이미지 레이어 이해하기 3.5 이미지 레이어 캐시를 이용한 Dockerfile 스크립트 최적화 3.6 연습 문제 4장 애플리케이션 소스 코드에서 도커 이미지까지 4.1 Dockerfile이 있는데 빌드 서버가 필요할까? 4.2 애플리케이션 빌드 실전 예제: 자바 소스 코드 4.3 애플리케이션 빌드 실전 예제: Node.js 소스 코드 4.4 애플리케이션 빌드 실전 예제: Go 소스 코드 4.5 멀티 스테이지 Dockerfile 스크립트 이해하기 4.6 연습 문제 5장 도커 허브 등 레지스트리에 이미지 공유하기 5.1 레지스트리, 리포지터리, 이미지 태그 다루기 5.2 도커 허브에 직접 빌드한 이미지 푸시하기 5.3 나만의 도커 레지스트리 운영하기 5.4 이미지 태그를 효율적으로 사용하기 5.5 공식 이미지에서 골든 이미지로 전환하기 5.6 연습 문제 6장 도커 볼륨을 이용한 퍼시스턴트 스토리지 6.1 컨테이너 속 데이터가 사라지는 이유 6.2 도커 볼륨을 사용하는 컨테이너 실행하기 6.3 파일 시스템 마운트를 사용하는 컨테이너 실행하기 6.4 파일 시스템 마운트의 한계점 6.5 컨테이너의 파일 시스템은 어떻게 만들어지는가? 6.6 연습 문제 2부 컨테이너로 분산 애플리케이션 실행하기 7장 도커 컴포즈로 분산 애플리케이션 실행하기 7.1 도커 컴포즈 파일의 구조 7.2 도커 컴포즈를 사용해 여러 컨테이너로 구성된 애플리케이션 실행하기 7.3 도커 컨테이너 간의 통신 7.4 도커 컴포즈로 애플리케이션 설정값 지정하기 7.5 도커 컴포즈도 만능은 아니다 7.6 연습 문제 8장 헬스 체크와 디펜던시 체크로 애플리케이션의 신뢰성 확보하기 8.1 헬스 체크를 지원하는 도커 이미지 빌드하기 8.2 디펜던시 체크가 적용된 컨테이너 실행하기 8.3 애플리케이션 체크를 위한 커스텀 유틸리티 만들기 8.4 도커 컴포즈에 헬스 체크와 디펜던시 체크 정의하기 8.5 헬스 체크와 디펜던시 체크로 복원력 있는 애플리케이션을 만들 수 있는 이유 8.6 연습 문제 9장 컨테이너 모니터링으로 투명성 있는 애플리케이션 만들기 9.1 컨테이너화된 애플리케이션에서 사용되는 모니터링 기술 스택 9.2 애플리케이션의 측정값 출력하기 9.3 측정값 수집을 맡을 프로메테우스 컨테이너 실행하기 9.4 측정값 시각화를 위한 그라파나 컨테이너 실행하기 9.5 투명성의 수준 9.6 연습 문제 10장 도커 컴포즈를 이용한 여러 환경 구성 10.1 도커 컴포즈로 여러 개의 애플리케이션 배포하기 10.2 도커 컴포즈의 오버라이드 파일 10.3 환경 변수와 비밀값을 이용해 설정 주입하기 10.4 확장 필드로 중복 제거하기 10.5 도커를 이용한 설정 워크플로 이해하기 10.6 연습 문제 11장 도커와 도커 컴포즈를 이용한 애플리케이션 빌드 및 테스트 11.1 도커를 이용한 지속적 통합 절차 11.2 도커를 이용한 빌드 인프라스트럭처 구축하기 11.3 도커 컴포즈를 이용한 빌드 설정 11.4 도커 외의 의존 모듈이 불필요한 CI 작업 만들기 11.5 CI 파이프라인에 관계된 컨테이너 11.6 연습 문제 3부 컨테이너 오케스트레이션을 이용한 스케일링 12장 컨테이너 오케스트레이션: 도커 스웜과 쿠버네티스 12.1 컨테이너 오케스트레이션 도구란? 12.2 도커 스웜으로 클러스터 만들기 12.3 도커 스웜 서비스로 애플리케이션 실행하기 12.4 클러스터 환경에서 네트워크 트래픽 관리하기 12.5 도커 스웜과 쿠버네티스 중 무엇을 사용할까? 12.6 연습 문제 13장 도커 스웜 스택으로 분산 애플리케이션 배포하기 13.1 도커 컴포즈를 사용한 운영 환경 13.2 컨피그 객체를 이용한 설정값 관리 13.3 비밀값을 이용한 대외비 설정 정보 관리하기 13.4 스웜에서 볼륨 사용하기 13.5 클러스터는 스택을 어떻게 관리하는가? 13.6 연습 문제 14장 업그레이드와 롤백을 이용한 업데이트 자동화 14.1 도커를 사용한 애플리케이션 업그레이드 프로세스 14.2 운영 환경을 위한 롤링 업데이트 설정하기 14.3 서비스 롤백 설정하기 14.4 클러스터의 중단 시간 14.5 스웜 클러스터의 고가용성 14.6 연습 문제 15장 보안 원격 접근 및 CI/CD를 위한 도커 설정 15.1 도커 API의 엔드포인트 형태 15.2 보안 원격 접근을 위한 도커 엔진 설정 15.3 도커 컨텍스트를 사용해 원격 엔진에서 작업하기 15.4 지속적 통합 파이프라인에 지속적 배포 추가하기 15.5 도커 리소스의 접근 모델 15.6 연습 문제 16장 어디서든 실행할 수 있는 도커 이미지 만들기: 리눅스, 윈도, 인텔, ARM 16.1 다중 아키텍처 이미지가 중요한 이유 16.2 다중 아키텍처 이미지를 만들기 위한 Dockerfile 스크립트 16.3 다중 아키텍처 이미지를 레지스트리에 푸시하기 16.4 도커 Buildx를 사용해 다중 아키텍처 이미지 빌드하기 16.5 개발 로드맵과 다중 아키텍처 이미지 16.6 연습 문제 4부 운영 환경 투입을 위한 컨테이너 준비하기 17장 도커 이미지 최적화하기: 보안, 용량, 속도 17.1 도커 이미지를 최적화하는 방법 17.2 좋은 기반 이미지를 고르는 법 17.3 이미지 레이어 수와 이미지 크기는 최소한으로 17.4 멀티 스테이지 빌드를 한 단계 업그레이드하기 17.5 최적화가 중요한 이유 17.6 연습 문제 18장 컨테이너의 애플리케이션 설정 관리 18.1 다단 애플리케이션 설정 18.2 환경별 설정 패키징하기 18.3 런타임에서 설정 읽어 들이기 18.4 레거시 애플리케이션에 설정 전략 적용하기 18.5 유연한 설정 모델의 이점 18.6 연습 문제 19장 도커를 이용한 로그 생성 및 관리 19.1 표준 에러 스트림과 표준 출력 스트림 19.2 다른 곳으로 출력된 로그를 stdout 스트림에 전달하기 19.3 컨테이너 로그 수집 및 포워딩하기 19.4 로그 출력 및 로그 컬렉션 관리하기 19.5 컨테이너의 로깅 모델 19.6 연습 문제 20장 리버스 프록시를 이용해 컨테이너H TTP 트래픽 제어하기 20.1 리버스 프록시란? 20.2 리버스 프록시의 라우팅과 SSL 적용하기 20.3 프록시를 이용한 성능 및 신뢰성 개선 20.4 클라우드 네이티브 리버스 프록시 20.5 리버스 프록시를 활용한 패턴의 이해 20.6 연습 문제 21장 메시지 큐를 이용한 비동기 통신 21.1 비동기 메시징이란? 21.2 클라우드 네이티브 메시지 큐 사용하기 21.3 메시지 수신 및 처리 21.4 메시지 핸들러로 기능 추가하기 21.5 비동기 메시징 패턴 이해하기 21.6 연습 문제 22장 끝없는 정진 22.1 도커를 이용한 개념 검증 22.2 소속 조직에서 도커의 유용함을 입증하라 22.3 운영 환경으로 가는 길 22.4 도커 커뮤니티 소개 찾아보기 |
|
이 책은 컨테이너 세상으로 이주하기를 원하는 개발자를 위한 책이다. 기존에 운영이나 개발 업무에 종사하던 사람들이 컨테이너 환경으로 넘어갈 수 있도록 길잡이 역할을 하는 책은 이미 여러 종류가 나와 있고 개중에는 직접 번역한 책도 있지만, 이 책만큼 실무와 가까운 내용으로 구성된 책은 보지 못했다.
이 책은 한 달간의 하루 한 시간 학습 전략을 기초로 구성됐다. 실무를 경험해 봤지만 컨테이너 환경에 익숙하지 못한 사람들을 위해 첫 번째 주에는 먼저 도커와 컨테이너에 대해 차근차근 설명하고, 이어서 도커의 사용법을 간단한 컨테이너 실행부터 시작해 원하는 이미지를 빌드하는 방법까지 조금씩 손에 익혀 나간다. 여기에 다시 기존 레거시 애플리케이션을 컨테이너로 이주하는 절차와 요령을 살짝 곁들이니, 컨테이너 기술에 익숙하지 않은데 당장 그러한 업무를 맞닥뜨린 사람에게는 가려운 곳을 참 시원하게 긁어 주는 책이 아닐 수 없다. 레거시 애플리케이션을 어떻게든 컨테이너로 이주해 왔다면, 두 번째 주는 컨테이너 환경의 장점을 온전히 누릴 수 있는 방법을 배울 차례다. 헬스 체크와 모니터링 기능을 적용하고 도커 컴포즈를 이용해 지속적 통합/전달 인프라까지 컨테이너 환경에 꾸리는 방법을 배운다. 세 번째 주는 컨테이너 오케스트레이션 맛보기다. 조금 고식적이라고 할 수 있지만, 컨테이너를 공부하면서 절대 빠뜨릴 수 없는 내용이기도 하다. 먼저 조금은 가볍게 접근할 수 있는 도커 스웜으로 분산 애플리케이션을 배치하고 나서 자동 업그레이드 및 롤백, 다중 아키텍처 이미지를 만드는 방법 등도 익힌다. 이것만으로 컨테이너 오케스트레이션을 제대로 배웠다고 할 수는 없겠지만, 곧이어 출간될 저자의 또 다른 책인 『쿠버네티스 교과서』의 학습을 시작하는 출발점 역할을 한다. 마지막 주에는 바로 실무에서 써먹을 수 있는 실전적인 내용을 다룬다. 도커 이미지의 최적화, 애플리케이션 설정 관리, 로그 관리, 본격적인 마이크로서비스 아키텍처 적용에 필요한 비동기 통신 등을 배운다. - 〈옮긴이의 말〉 중에서 |
|
구성돼 있습니다. 꽤 오랫동안 도커를 사용해 와서 도커의 기본을 잘 알고 있다고 생각했었는데, 이 책에 담긴 저자의 깊이 있는 지식과 설명을 읽으면서 제가 큰 착각에 빠졌을지도 모른다는 생각을 하게 됐습니다. 이 책은 단순히 도커를 설명만 하는 것이 아니라 모든 장에 저자의 노하우를 듬뿍 담아냈습니다. 마이크로서비스 환경에서의 빌드, 배포, 테스트, 롤백, 운영, 업데이트 자동화, 보안, 로깅, 모니터링 등 고급 도커 활용법을 매우 상세히 다루며, 프로메테우스, 그라파나, EFK 스택, 엔진엑스(Nginx), 레디스, NATS 등 다양한 서비스와 연계하여 구성하고 배포하고 운영하는 기술도 다룹니다. 또한, GitOps, 젠킨스(Jenkins) CI/CD와 도커 컨테이너를 활용해 데브옵스 환경을 구축하고 운영하는 방법도 소개합니다. 더욱 놀라운 사실은 이렇게 많은 내용을 상세히 다루면서도 내용이나 실습이 전혀 부실하지 않다는 것입니다. 실무에서 충분히 활용할 수 있는 수준의 내용이 상당히 많이 제공되고 있으며 ‘도커 교과서’라는 이름에 전혀 손색이 없을 만한 내용을 갖추고 있습니다. 누군가에게 도커 서적을 한 권 추천하라고 한다면, 이 책을 자신 있게 권할 수 있을 것 같습니다. - 권민승 (샵라이브코리아)
|
|
이 책은 도커의 A~Z까지 친절하게 설명하며 다양한 환경에서 실습할 수 있는 도커 스크립트를 제공합니다. 또한, 도커를 사용한 애플리케이션 개발에서부터 클라우드 환경에서의 운영, 레거시 시스템의 이주 과정과 최적화 방법까지 고루 설명하고 있습니다. 도커의 기본 개념과 작동 원리는 물론이고 실무에 바로 활용할 수 있는 고급 기술까지 다루고 있으므로 도커를 잘 모르는 초보자라도 도커를 적재적소에 활용할 수 있는 전문가의 길로 이끌어 줍니다. 개발만 하던 저도 이제는 도커를 이용하여 빌드에서 배포까지 아우르는 도커 스크립트를 작성하고 싶어지네요. 좋은 교과서로 공부했으니 실력도 쑥쑥 늘 것이라 생각합니다. - 김미수 (자바 웹 개발자)
|
|
저자의 경험과 평소 강의 내용이 잘 녹아 있는 책입니다. 어떤 기술이든 실습을 하지 않으면 개념을 익히기가 굉장히 어려운데, 실습이 잘 정리돼 있고 어렵지 않게 따라 할 수 있어 도커가 쉽게 느껴졌습니다. 개념을 익히고 실습으로 한 번 더 학습하여 도커에 대한 개념을 더 빨리 익힐 수 있는 책이며, ‘도커 교과서’라는 이름답게 언제든지 꺼내 보면서 학습하기에 좋습니다. 도커에 대한 궁금증이 있는 분들이라면 꼭 한번 읽어 보면 좋겠습니다. - 류영표 (프리랜서 개발자)
|
|
도커는 공식 문서가 매우 잘 정리돼 있지만, 처음부터 이를 활용해 공부하기는 어렵습니다. 저는 도커의 큰 강점인 배포가 아니라 딥러닝 서버 관리를 위해 도커를 배우게 됐고, 너무 다양한 소스를 활용해 배우다 보니 사용은 하고 있지만 지식이 하나로 합쳐지지 않은 상태였습니다. 그러던 중 상황에 따른 도커의 기능들을 순차적으로 제공하는 이 책을 접하게 됐고, 마침내 혼란스러웠던 여러 내용이 머릿속에서 잘 합쳐졌습니다. 특히 실습 코드가 도움이 많이 됐는데, 지나치게 다양한 상황의 실습 코드를 사용하는 것이 아니라 몇 개의 실습 코드를 상황에 맞춰 빌드업해 나가면서 배우다 보니 도커의 세부적인 기능을 이해하는 데 큰 도움이 됐습니다. 또한, 널리 사용되는 도커의 기본적인 기능 외에 추가적인 기능도 함께 배우게 됐습니다. - 조대현 (고려대학교 인공지능학과 석박사 통합 과정)
|