길벗·이지톡

도서 IT전문서/IT입문서 임베디드/시스템/네트워크

도커 전문가가 알려주는 실전에 강한 도커 사용법!

 

입문자에게 딱 맞는 구성으로 시작하자!

이 책은 저자가 수년에 걸쳐 완성한 ‘하루 1시간 학습 전략’을 따랐다. 실습이 없는 1장과 22장을 제외한 총 20개의 장은 ‘내용을 읽고 실습한 후 연습 문제를 푸는 데까지’ 1시간이면 충분하도록 구성되었다. 특히 하루하루 단계별로 주제를 넓혀가면서 학습하므로 도커를 처음 배우는 사람도 부담 없이 이 책을 모두 읽고 이해할 수 있다.

 

200개의 실습으로 실전 투입을 위한 준비를 마치자!

이 책에는 200개 이상의 실습이 담겨 있다. 도커를 잘 모르더라도 각 장에서 배운 내용을 실습을 통해 바로 활용해 보면서 도커와 분산 애플리케이션, 컨테이너 오케스트레이션과 컨테이너 생태계를 잘 이해하고 활용할 수 있는 점진적인 경험을 제공한다. 특히 각 실습은 실무에서 맞닥뜨릴 수 있는 작업에 초점을 맞추고 있어 실전 투입을 위한 준비로도 제격이다.

 

목차

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 도커 커뮤니티 소개

 

찾아보기

 

더보기접기

저자

ㆍ지은이 엘튼 스톤맨

지은이 소개
도커 전문가로, 다년간 마이크로소프트 MVP로 선임되었으며, udemy와 Pluralsight 등 다양한 온라인 교육 코스를 진행했다. 커리어 대부분을 마이크로소프트에서 대규모 엔터프라이즈 시스템의 설계 및 전달에 대한 컨설팅 업무로 채웠다. 컨테이너 기술을 만나게 된 이후 도커에 합류해 도전적이면서도 즐거운 3년을 보냈다. 현재는 프리랜서 컨설턴트이자 교육자로서 기업들이 컨테이너 기술을 도입하는 데 도움을 주고 있으며, 도커에서 지정한 앰배서더인 '도커 캡틴'으로 활동하고 있다. 블로그(https://blog.sixeyed.com)에 도커와 쿠버네티스에 대한 글을 쓰고 있으며, 트위터(@EltonStoneman)와 유튜브(https://eltons.show)도 운영하고 있다.

ㆍ옮긴이 심효섭

옮긴이 소개
연세대학교 문헌정보학과를 졸업하고 모교 중앙도서관과의 인연으로 도서관 솔루션 업체에서 일하면서 개발을 시작했다. 네이버에서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고도 지속 가능한 삶이다. 옮긴 책으로는 『쿠버네티스 교과서』(길벗, 2023), 『도커 교과서』(길벗, 2022), 『그림과 실습으로 배우는 도커&쿠버네티스』(위키북스, 2022), 『비전 시스템을 위한 딥러닝』(한빛미디어, 2021), 『도메인 주도 설계 철저 입문』(위키북스, 2020) 등 20여 종이 있다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.