Top

도커에서 윈도우 컨테이너 사용하기 2/e [윈도우 서버 애플리케이션을 클라우드 네이티브 환경으로 보내기 위한 준비]

  • 원서명Docker on Windows: From 101 to production with Docker on Windows, 2nd Edition (ISBN 9781789617375)
  • 지은이엘튼 스톤맨(Elton Stoneman)
  • 옮긴이남정현
  • ISBN : 9791161755762
  • 40,000원
  • 2021년 10월 27일 펴냄
  • 페이퍼백 | 574쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 클라우드 컴퓨팅

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/docker-windows

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

윈도우 서버용으로 만든 서버 애플리케이션을 요즈음 유행하는 도커(Docker) 기반으로 윈도우 컨테이너 형태로 변환하기 위한 기술적인 방법과 노하우를 담고 있는 책이다. 도커를 사용하는 기본적인 방법을 포함해서 오래된 윈도우 서버 애플리케이션을 코드 수정 없이 클라우드 네이티브 기반으로 현대화할 수 있는 전략을 설명한다. 또한 프로덕션 환경에서 윈도우 컨테이너를 관리하기 위한 방안과, 데브옵스 개념을 처음 접하는 개발자들을 위한 워크플로우를 소개해 윈도우 컨테이너를 실무에 도입하는 것을 고민하는 사람들에게 비전을 제시하고 있다.

이 책에서 다루는 내용

◆ 도커의 주요 개념인 이미지, 컨테이너, 레지스트리, 스웜 클러스터 이해하기
◆ 윈도우 10, 윈도우 서버 2019, 클라우드에서 도커 실행하기
◆ 여러 컨테이너에 걸쳐 분산된 솔루션 배포, 모니터링
◆ 도커 스웜에서 컨테이너를 실행해 항상 사용 가능한 상태를 유지하고 장애 상황을 자체적으로 해결할 수 있도록 구현하기
◆ 도커 플랫폼의 심층적 보안 완벽 이해와 애플리케이션 보안 강화
◆ 지속적 배포 파이프라인을 도커 안에서 젠킨스, Git으로 생성 및 실행하기
◆ Visual Studio를 사용해 Docker 컨테이너 안의 애플리케이션 디버깅하기
◆ 조직 안에서 도커 도입 계획 수립하기

이 책의 대상 독자

기존 단일 애플리케이션을 다시 만들지 않고 현대화할 때, 배포를 프로덕션으로 원활하게 전환하거나 데브옵스 또는 클라우드로 이동할 때 도커가 큰 도움이 될 것이다. 이 책으로 도커 관련 견고한 지식과 기반을 얻을 수 있으며 필요한 모든 상황에 폭넓게 대입할 수 있을 것이다.

이 책의 구성

1장, ‘윈도우에서 Docker 시작하기’에서는 도커 런타임을 소개하고 윈도우 10 및 윈도우 서버 2019에서 도커를 실행해 애저 가상 컴퓨터에서 도커를 실행하는 방법을 알아본다.
2장, ‘Docker로 애플리케이션 컨테이너 이미지 만들고 실행하기’에서는 컨테이너 이미지 즉 컨테이너를 실행할 수 있는 모든 호스트에서 같은 방식으로 실행되는 모든 종속성 있는 패키지 애플리케이션에 초점을 맞춘다. 간단한 웹사이트의 Dockerfile로 컨테이너 이미지를 만든 후 윈도우에서 실행하는 방법을 확인해본다.
3장, ‘컨테이너로 .NET Framework 및 .NET Core 애플리케이션 개발하기’에서는 기존 .NET Framework 애플리케이션을 컨테이너로 만들어 윈도우 컨테이너에서 실행하는 방법을 알아보고 모든 운영체제에서 실행할 수 있는 새로운 .NET Core 애플리케이션을 같은 접근 방법으로 활용하는 방법을 알아본다. .NET Core 애플리케이션은 윈도우와 리눅스에서 모두 잘 실행되며 이식하기 쉬운 컨테이너로 애플리케이션을 옮길 때 이상적으로 적합한 기술이다.
4장, ‘Docker 레지스트리와 이미지 공유하기’에서는 제품팀의 공식 이미지, 공공 커뮤니티 이미지, 개인 저장소의 이미지 등 구축된 이미지를 공유할 수 있는 도커 허브를 다룬다. 개발 중인 이미지를 게시하는 방법, 내부 사용을 위해 사설 도커 레지스트리를 실행하는 방법 그리고 추가 기능이 있는 상업용 레지스트리 솔루션을 알아본다.
5장, ‘컨테이너 중심 솔루션 설계 채택하기’에서는 4장의 내용을 바탕으로 다양한 고품질 컨테이너 이미지를 사용해 기성품 이미지와 맞춤형 이미지를 혼합해 분산 솔루션을 설계하는 방법을 간단하게 보여준다. 윈도우 컨테이너에서 일래스틱서치와 키바나의 새로운 분석 기능과 함께 레거시 모놀리식 애플리케이션을 분해하고 홈페이지 구성 요소를 새로 대체하며 REST API를 추가하는 방법을 배운다.
6장, ‘Docker Compose를 사용한 분산 솔루션 구성하기’에서는 애드혹(Ad-hoc) 분산 솔루션을 Docker 네트워크와 함께 Docker Compose를 사용해 배포 가능한 패키지로 빌드하는 방법을 알아본다. 이로써 컨테이너가 DNS를 사용해 통신할 수 있으며 Docker Compose YML 파일 구조와 Docker Compose의 실행 방식을 설명한다. 또한 도커 네트워크의 개요로 컨테이너를 서로 연결하는 것이 얼마나 쉬운지도 알 수 있을 것이다.
7장, ‘Docker 스웜을 사용한 분산 솔루션 오케스트레이션’에서는 Docker 스웜을 사용한 프로덕션 준비 클러스터 구축 방법을 설명하며 도커에 들어 있는 새로운 클러스터링 기술에 중점을 둔다. 윈도우에서 실행되는 스웜 클러스터를 설정하고 라우팅 메시의 작동 방식을 알아보며 분산 애플리케이션을 스웜 서비스로 배포해 서비스 검색 기능을 사용하고 안정적으로 작동하게 만드는 방법을 배운다.
8장, ‘Docker 기반의 솔루션과 DTR의 관리 및 모니터링하기’에서는 분산 Docker 솔루션 관리 방법을 설명한다. 윈도우 컨테이너와 함께 기존 관리 도구를 사용할 수 있다. 또한 Docker 스웜에서 컨테이너를 시각화하기 위해 무료/상용 도구를 사용해 컨테이너화된 애플리케이션을 관리하는 새로운 방법을 알아보고 실행 중인 서비스의 순차 업데이트 방법을 배운다.
9장, ‘Docker의 보안 위험 및 이점 이해하기’에서는 도커 보안의 주요 특징 즉 하나인 노드에 여러 컨테이너가 실행될 때 발생할 수 있는 위험(즉, 공격자가 하나의 컨테이너를 망가뜨리고 다른 컨테이너에 접근할 수 있는 상황)을 알아보고 이러한 문제를 최소화하는 방법을 설명한다. Docker 허브와 신뢰할 수 있는 레지스트리에 들어 있는 이미지에 대한 보안 취약 요소 검색 기능으로 도커가 보안을 강화하는 방법을 배우고 이미지 내부의 소프트웨어가 내포한 보안 문제를 다룬다.
10장 ‘Docker로 만드는 지속적 배포 파이프라인 구축하기’에서는 모든 것이 자동화된 데브옵스 작업 흐름에서 도커를 다룬다. 소스 제어 및 빌드를 위해 컨테이너에서 Git 서버 및 젠킨스 자동화 서버를 실행하는 도커를 사용해 전체 배포 파이프라인을 구축한다. 파이프라인은 코드가 푸시될 때 새로운 컨테이너 이미지를 만들고 자동화된 테스트를 실행하며 테스트 환경에 배포한다.
11장, ‘애플리케이션 컨테이너 디버깅 및 메트릭 보기’에서는 컨테이너를 빌드하거나 실행하는 도중 발생하는 문제를 해결하는 방법을 알아본다. 다양한 버전의 Visual Studio에서 도커를 사용하는 방법과 애플리케이션 및 컨테이너의 메트릭을 확인해 현재 상태를 대시보드에 표시하는 방법을 알아본다. 또한 도커가 개발자의 버그 수정 작업 방식을 개선하는 방법도 알아본다.
12장, ‘잘 아는 것을 컨테이너화하기 - 도커 구현을 위한 지침’에서는 실제 사례에 초점을 맞춘다. 도커의 비즈니스 사례를 제시하고 비즈니스 사례가 충족되는지 확인하는 방법을 설명한다. 개념 증명에서 기존 소프트웨어 스택을 컨테이너화하는 방법과 도커에서 실행할 수 있는 애플리케이션에서 버티컬 슬라이스(기능 중 일부를 추출해 부분적으로 만들어보는 것)를 추출해 마이크로서비스 아키텍처로 이동하는 방법을 알아본다. 부록 1, ‘원서 출간 이후 바뀐 내용의 업데이트’에서는 원서가 출간된 후 업데이트된 도커 및 관련 기술, 그중에서도 윈도우 컨테이너와 연관된 부분을 주로 소개하며 바뀐 내용에 맞춰 독자가 검토해야 할 내용을 담고 있다.
부록 2, ‘윈도우 컨테이너 개발 환경 구축하기’에서는 윈도우 컨테이너 개발 환경을 서버가 아닌 개발자 컴퓨터 환경에 구축할 수 있는 방법을 상세하게 설명한다.

저자/역자 소개

지은이의 말

컨테이너는 소프트웨어를 실행할 새로운 방법이다. 컨테이너는 효율적이고 보안성과 이식성이 뛰어나며 윈도우 애플리케이션을 도커에서 코드 변경 없이 실행할 수 있다. 도커는 매우 어려운 주제인 레거시 애플리케이션의 현대화, 애플리케이션 빌드, 클라우드로의 이동, 데브옵스 도입, 지속적 혁신과 같은 일을 이루게 도와줄 것이다.
이 책은 윈도우에서 도커를 사용할 때 필요한 모든 것을 기초부터 프로덕션에서 항상 사용 가능한 상태를 보장하기 위해 알아야 할 내용까지 모두 다룬다. 윈도우의 컨테이너에 있는 .NET Framework 및 .NET Core 애플리케이션의 주요 개념과 간단한 예제부터 시작해 도커로의 여정을 안내할 것이다. 그런 다음 도커를 사용해 기존 아키텍처를 어떻게 현대화하고 전통적인 ASP.NET과 SQL 서버 애플리케이션을 개발할 수 있는지를 배울 수 있다.
이러한 예제에서는 레거시 단일 애플리케이션을 분산된 애플리케이션으로 분할해 클라우드의 클러스터링된 환경에 배포하는 방법을 보여주며 로컬에서 실행할 때 사용하는 것과 같은 결과물을 사용한다. 그리고 도커를 사용해 애플리케이션을 컴파일, 패키지, 테스트, 배포하는 CI/CD 파이프라인을 구축하는 방법을 확인할 수 있다. 안심하고 프로덕션 환경으로 전환할 수 있도록 도커 보안, 관리, 지원 방법을 알아본다.
사내 소규모 애플리케이션부터 애저에서 실행되는 대규모 애플리케이션에 이르기까지 도커 구현의 실제 사례를 알아본다.

지은이 소개

엘튼 스톤맨(Elton Stoneman)

2010년부터 마이크로소프트 MVP로 활동했으며 2013년부터 Pluralsight에서 저자로 활동했다. Docker에 입사하기 전 15년 동안 컨설턴트로 일했고 윈도우, 도커, 애저에서 실행되는 .NET 기반으로 만들어진 대규모 성공적인 솔루션을 설계해 배포해왔다.
마이크로소프트 기술 스택의 새로운 진화를 매우 즐기고 있으며 기존 .NET Framework 애플리케이션을 도커와 함께 .NET Core를 사용해 윈도우와 리눅스 컨테이너로 현대화하는 것이 왜 필요한지 많은 사람이 이해하도록 도와주고 있다.
도커를 주제로 블로그 글을 쓰고 트위터로 소통하고 강의 및 발표를 자주 진행한다. 도커와 .NET 사용자 그룹에서 정기적으로 활동하며 DockerCon, NDC, DevSum, BuildStuff, WinOps, Techorama 등 전 세계 여러 콘퍼런스를 다니며 재미있는 발표를 하는 것을 즐긴다.

옮긴이의 말

컨테이너 기반의 기술은 이제 업계에서 사실상의 표준이자 기본 기술이 됐다. 최신 기술을 다루거나, 최신 기술에 관심이 있는 사람이라면 누구나 기본적인 내용으로 학습하고 인지하는 기술이 됐다. 그리고 이런 컨테이너를 가장 활용하기 쉽고 편리하게 만들어주는 도구는 단연 도커라는 것을 부정하는 사람이 없다.
컨테이너 기술 덕분에, 그 결과 이전에는 찾아볼 수 없었던 수준의 강력함과 유연성을 이뤄내며, IT 업계에 새로운 가능성과 비전을 제시하고 있다. 한 서버에서 호스팅할 수 있는 애플리케이션의 수를 크게 늘려 더 많은 애플리케이션을 동시에 효율적이면서도 체계적으로 호스팅할 수 있도록 해주고, 동일 운영 비용 대비 더 많은 작업과 서비스를 가능하게 만들었다.
도커는 리눅스를 기반으로 개발돼 온 기술이다. 시대의 흐름에 맞춰 윈도우를 개발하는 마이크로소프트 역시 이런 도커의 흥미로운 움직임을 적극적으로 운영체제에 수용해 윈도우에서도 컨테이너 런타임의 이점을 충분히 누릴 수 있도록 새로운 기술 스택을 추가했고, 그것이 바로 이 책에서 다루는 윈도우 컨테이너 기술이며, 도커 역시 리눅스 컨테이너뿐 아니라 윈도우 컨테이너를 호스팅하거나 윈도우 컨테이너 이미지를 빌드할 수 있도록 기능을 제공하고 있다.
안타까운 점은, 도커가 리눅스에 국한된 기술이라고 굳게 믿게 할 만한 현실적인 제약 사항이 꽤 강력하게 작용한다는 것이다. 리눅스 컨테이너처럼 쉽게 개발자의 컴퓨터에 설치해서 쓸 수 없거나, 기대한 성능을 이끌어내기 위해 알아야 할 사전 조건이 까다로운 편이다. 그리고 윈도우의 상징처럼 여겨지는 GUI 애플리케이션을 컨테이너화할 수 없다는 것 때문에 금새 흥미를 잃는 경우도 많을 것이다. 그러나 이는 도커의 태생과 방향성을 생각해보면 당연한 것이며, 다른 한편으로 윈도우 기반 애플리케이션의 입장에서는 불공평한 면도 있다.
하지만 컨테이너 런타임을 들여와 얻을 수 있는 이점은 이런 불공평함을 가볍게 뛰어넘고도 남을 정도로 매력적이고 강력하다. 필자는 데브시스터즈에서 데브옵스 엔지니어로 일하면서, 윈도우 컨테이너를 지원하는 쿠버네티스로 개발 환경 전체를 효율화하고, 동시에 프로덕션 환경에서 윈도우 컨테이너로 게임 서비스를 구동할 수 있도록 인프라를 구축해서 성공적으로 게임 서비스를 호스팅하는 경험을 얻을 수 있었다.
컨테이너 런타임을 도입해서 관리할 수 있다면 설치와 배포 과정에서 발생하는 인적 오류를 원천 봉쇄할 수 있을 뿐 아니라, 문제가 발생할 경우에는 언제든 컨테이너를 다시 시작하거나 재배포하는 것만으로 빠르게 문제를 복구하고, 중단 시간을 최소화할 수 있는 방법을 제공한다. 그러면서도 기존 윈도우 서버 애플리케이션의 이점은 약간의 주의를 기울이는 것 만으로도 얼마든지 호환성을 맞춰 대응할 수 있으니 적극적으로 고려해 볼만한 매력적인 기술이라고 자신 있게 말할 수 있다.
실무에서 윈도우 컨테이너를 도입하기를 원하거나, 자세한 내용을 알기 원하는 모든 이에게 이 책은 좋은 시작점이 될 것이다. 하지만 윈도우 컨테이너를 도입하면서 익숙해지려면 실제로는 알아야 할 내용이 적지 않은 것 또한 사실이다. 그래서 원서에서는 자세히 다루지 않았으나, 필자가 실무에서 윈도우 컨테이너를 도입하면서 경험했던 실수하기 쉬운 내용들을 따로 담아 약간의 가이드를 추가했으니, 시작 단계에서 발걸음을 떼지 못한 독자는 꼭 읽어 보기를 권한다.

옮긴이 소개

남정현

데브시스터즈에서 데브옵스 엔지니어로 일하고 있으며, 사내에서 개발되고 있는 윈도우 서버 애플리케이션 기반의 게임 서버를 클라우드 네이티브 기반의 인프라에서 실행할 수 있도록 기술 개발과 지원하는 일을 했다.
2009년부터 2022년까지 마이크로소프트 MVP로 활동하고 있으며, 닷넷 개발자들을 위한 커뮤니티인 닷넷데브, WSL 사용자들을 위한 커뮤니티인 한국 WSL 사용자 그룹 커뮤니티를 운영하고 있다.

목차

목차
  • 1부. Docker와 윈도우 컨테이너 이해하기
  • 1장. 윈도우에서 Docker 시작하기
    • 실습에 필요한 준비
    • Docker와 윈도우 컨테이너
      • 윈도우 버전
      • 윈도우 라이선스 취득
    • Docker의 중요 개념 이해하기
      • Docker 엔진과 Docker CLI
      • 컨테이너 이미지
      • 이미지 레지스트리
      • 컨테이너
      • Docker 스웜
        • 쿠버네티스 소개
    • 윈도우에서 Docker 실행하기
      • 윈도우용 Docker 데스크톱
      • Docker 엔진
      • 애저 가상 컴퓨터 안에서 Docker 실행하기
    • 이 책으로 Docker 배우기
    • 요약

  • 2장. Docker로 애플리케이션 컨테이너 이미지 만들고 실행하기
    • 실습에 필요한 준비
    • 이미지로부터 컨테이너 실행하기
      • 태스크 컨테이너에서 한 가지만 실행하기
      • 대화형 컨테이너에 연결하기
      • 백그라운드 컨테이너 안에서 프로세스를 계속 실행하도록 유지하기
    • 컨테이너 이미지 빌드하기
      • Dockerfile 이해하기
      • Dockerfile에서 이미지 빌드하기
      • Docker가 이미지를 어떻게 만드는지 확인하기
    • 애플리케이션 이미지 만들기
      • 빌드 도중 애플리케이션 컴파일하기
      • 빌드 전에 애플리케이션 컴파일하기
      • 다단계 빌드로 컴파일하기
      • 주요 Dockerfile 지시어 사용하기
      • 임시 컨테이너와 이미지 상태 이해하기
    • 컨테이너 이미지와 컨테이너 안에서 데이터 다루기
      • 레이어 안의 데이터와 가상 C: 드라이브
      • 컨테이너 간에 볼륨으로 데이터 공유하기
      • 컨테이너와 호스트 간에 볼륨으로 데이터 공유하기
        • 호스트 디렉터리로부터 볼륨 마운트하기
      • 구성과 상태 관리를 위해 볼륨 사용하기
    • 기존 ASP.NET 웹 애플리케이션을 컨테이너 이미지로 만들기
      • NerdDinner를 위한 Dockerfile 만들기
    • 요약

  • 3장. 컨테이너로 .NET Framework 및 .NET Core 애플리케이션 개발하기
    • Docker에 최적화된 애플리케이션 만들기
      • 인터넷 정보 서비스 애플리케이션을 Docker에서 실행하기
        • IIS의 로그 설정을 Docker에 친화적으로 만들기
      • 애플리케이션 구성 관리하기
        • 볼륨에서 구성 파일 마운트하기
        • 환경 변수 가져오기
      • 애플리케이션 상태를 모니터링할 수 있는 컨테이너 이미지 만들기
    • 의존성 분리하기
      • SQL 서버 데이터베이스를 위한 컨테이너 이미지 만들기
      • SQL 서버 컨테이너를 위한 데이터베이스 파일 관리하기
        • 컨테이너 안에서 데이터베이스 실행하기
      • 애플리케이션 컨테이너에서 데이터베이스 컨테이너로 연결하기
    • 모놀리식 애플리케이션 나누기
      • 복잡한 구성 요소를 모놀리스에서 추출하기
      • ASP.NET Core 애플리케이션에서 UI 구성 요소 호스팅하기
      • 애플리케이션 컨테이너 연결하기
    • 요약

  • 4장. Docker 레지스트리와 이미지 공유하기
    • 레지스트리와 리포지터리 이해하기
      • 이미지 리포지터리 이름 파악하기
      • 이미지를 빌드하고 태그를 붙이고 버전을 관리하는 방법
      • 레지스트리로 이미지 푸시하기
    • 로컬 이미지 레지스트리 실행하기
      • 레지스트리 이미지 빌드하기
      • 레지스트리 컨테이너 실행하기
      • 로컬 레지스트리에 이미지 푸시하고 풀하기
    • Docker로 안전하지 않은 레지스트리 접속 허용하기
      • 윈도우 이미지 레이어를 로컬 레지스트리에 저장하기
      • 상용 레지스트리 사용하기
    • Docker 허브
      • 신뢰할 수 있는 Docker 레지스트리
      • 다른 레지스트리
      • 요약

  • 2부. 컨테이너화된 솔루션 설계하고 만들기
  • 5장. 컨테이너 중심 솔루션 설계 채택하기
    • 실습에 필요한 준비
    • NerdDinner의 설계 목표 정하기
      • NerdDinner 구성을 Docker에 친화적으로 만들기
      • 만찬 일정 예약 기능 나누기
      • .NET 콘솔 애플리케이션을 Docker로 포장하기
    • Docker에서 메시지 큐 실행하기
    • 여러 컨테이너로 구성된 솔루션 시작하기
    • 레거시 애플리케이션 현대화하기
      • REST API를 추가해 데이터 공개하기
      • 컨테이너 간 HTTP 요청을 리버스 프록시로 라우팅하기
        • 컨테이너의 트래픽을 Traefik으로 프록시화하기
    • 컨테이너에 새로운 기능 추가하기
      • 엘라스틱 서치를 Docker와 .NET과 함께 사용하기
      • .NET Framework와 .NET Core가 혼합된 솔루션을 Docker에서 빌드하기
        • 복잡한 NerdDinner 솔루션 컴파일하기
        • .NET Core 콘솔 애플리케이션을 컨테이너 이미지로 만들기
      • 키바나에 분석 기능 추가하기
    • 모놀리식에서 분산 솔루션으로 이동하기
      • 빌드와 배포 의존성 관리하기
    • 요약

  • 6장. Docker Compose를 사용한 분산 솔루션 구성하기
    • 실습에 필요한 준비
    • Docker Compose로 애플리케이션 정의하기
      • 서비스 정의 만들기
      • 인프라 서비스 정의하기
        • 엘라스틱 서치
        • Traefik
        • 키바나
      • 애플리케이션 서비스 구성하기
      • 애플리케이션 리소스 지정하기
    • Docker Compose로 애플리케이션 관리하기
      • 애플리케이션 실행하기
      • 애플리케이션 서비스 스케일링하기
      • 애플리케이션 서비스 중지하고 시작하기
      • 애플리케이션 서비스 업그레이드하기
      • 애플리케이션 컨테이너 모니터링하기
      • 애플리케이션 이미지 관리하기
    • 애플리케이션 환경 구성하기
      • 외부 리소스 지정하기
      • Docker Compose 재정의 사용하기
    • 요약

  • 7장. Docker 스웜을 사용한 분산 솔루션 오케스트레이션
    • 실습에 필요한 준비
    • 스웜 클러스터 만들고 노드 관리하기
      • 스웜 클러스터 초기화하기
      • 워커 노드를 스웜 클러스터에 추가하기
      • 스웜 노드의 승격과 제거
      • Docker 스웜을 클라우드에서 실행하기
        • Docker 인증 인프라
    • 스웜 모드 안에서 서비스 만들어 관리하기
      • 여러 컨테이너에 걸쳐 서비스 실행하기
      • 글로벌 서비스
      • 스웜 모드의 로드 밸런싱과 확장
    • Docker 스웜에서 애플리케이션 구성 관리하기
      • Docker 구성 개체로 구성 저장하기
      • Docker 구성 개체를 스웜 서비스에서 사용하기
      • Docker 시크릿으로 민감한 데이터 저장하기
    • Docker 스웜으로 스택 배포하기
      • Docker Compose 파일을 사용해 스택 정의하기
      • 스웜 리소스를 Docker Compose 파일에 정의하기
      • 스웜 스택을 Docker Compose 파일로부터 배포하기
    • 무중단으로 업데이트 배포하기
      • 애플리케이션 서비스 업데이트하기
      • 서비스 업데이트 롤백하기
      • 업데이트 동작 구성하기
      • 스웜 노드 업데이트하기
      • 하이브리드 스웜에서 호스트 혼합하기
    • 요약

  • 3부. Docker 프로덕션 환경 준비하기
  • 8장. Docker 기반의 솔루션과 DTR의 관리 및 모니터링하기
    • 실습에 필요한 준비
    • 윈도우 도구로 컨테이너 관리하기
      • IIS 관리자
      • SSMS
      • 이벤트 로그
      • 서버 관리자
    • Docker 도구로 컨테이너 관리하기
      • Docker 시각화 도구
      • 포테이너
    • Docker 엔터프라이즈로 CaaS 기능 이용하기
      • 유니버설 제어 플레인 이해하기
      • UCP UI 탐색하기
      • 노드 관리하기
      • 볼륨
      • 이미지
      • 네트워크
      • 스택 배포하기
      • 서비스 만들기
      • 서비스 모니터링하기
      • RBAC
    • 요약

  • 9장. Docker의 보안 위험 및 이점 이해하기
    • 컨테이너 보안 이해하기
      • 컨테이너 프로세스
      • 컨테이너 사용자 계정과 접근 제어 목록
      • 리소스 제약 사항과 함께 컨테이너 실행하기
      • 제한된 용량으로 컨테이너 실행하기
      • 윈도우 컨테이너와 액티브 디렉터리
      • Hyper-V 컨테이너 격리하기
    • 안전한 컨테이너 이미지로 애플리케이션 보안 강화하기
      • 최소한의 이미지 만들기
      • 컨테이너 이미지 취약점 검사하기
      • 윈도우 업데이트 관리하기
    • DTR로 소프트웨어 공급망 보호하기
      • 리포지터리와 사용자
      • 조직과 팀
      • DTR의 이미지 프로모션 정책
      • 이미지 서명과 콘텐츠 트러스트
      • 골든 이미지
    • 스웜 모드의 보안 이해하기
      • 노드와 참가 토큰
      • 암호화와 시크릿
      • 노드 라벨과 외부 접근
      • 컨테이너 보안 기술과 연동하기
    • 요약

  • 10장. Docker로 지속적 배포 파이프라인 구축하기
    • 실습에 필요한 준비
    • Docker로 CI/CD 설계하기
    • Docker에서 공유 개발 서비스 실행하기
      • Git 서버를 윈도우 컨테이너 이미지로 만들기
      • Docker에서 Gogs Git 서버 실행하기
      • CI 서버를 윈도우 컨테이너 이미지로 만들기
      • Docker에서 젠킨스 자동화 서버 실행하기
      • 만들어진 컨테이너에서 이미지에 반영할 변경 사항 추출하기
    • Docker에서 젠킨스를 사용해 CI/CD 구성하기
      • 젠킨스 자격 증명 설정하기
      • 젠킨스 CI 작업 구성하기
      • 젠킨스에서 Docker를 사용해 솔루션 빌드하기
      • 솔루션 실행 및 확인하기
      • Docker에서 엔드 투 엔드 테스트 실행하기
      • 젠킨스에서 컨테이너 이미지에 태그 지정하고 푸시하기
    • 젠킨스를 사용해 원격 Docker 스웜에 배포하기
    • 요약

  • 4부. 컨테이너로 떠나는 여행
  • 11장. 애플리케이션 컨테이너 디버깅 및 메트릭 보기
    • 실습에 필요한 준비
    • Docker를 통합 개발 환경에서 함께 사용하는 방법
      • Visual Studio 2017의 Docker 지원
        • Docker Compose로 Visual Studio 2017에서 디버깅하기
      • Visual Studio 2015의 Docker 지원
      • Visual Studio Code의 Docker 지원
    • 컨테이너로 만든 애플리케이션의 메트릭 보기
      • 프로메테우스를 사용한 메트릭 활용하기
      • .NET 애플리케이션 메트릭을 프로메테우스에 공개하기
      • 기존 애플리케이션과 함께 프로메테우스 내보내기 추가하기
      • 윈도우 컨테이너에서 프로메테우스 서버 실행하기
      • Grafana로 애플리케이션 대시보드 만들기
    • Docker의 버그 수정 작업 흐름
      • Docker 도입 이전의 버그 수정하기
      • Docker 도입 이후의 버그 수정 작업 흐름
    • 요약

  • 12장. 잘 아는 것을 컨테이너화하기 - Docker 구현을 위한 지침
    • 잘 아는 것을 Docker로 만들기
      • 간단한 개념 증명 애플리케이션 선택하기
      • Image2Docker로 초기 Dockerfile 만들기
      • 다른 이해관계자의 참여
    • Docker 도입을 위한 사례 연구
      • 사례 연구 1 - 사내 웹 폼 애플리케이션
      • 사례 연구 2 - 데이터베이스 통합 서비스
      • 사례 연구 3 - 애저 IoT 애플리케이션
    • 요약

  • 부록. 독자 여러분을 위한 가이드
  • 부록 1. 원서 출간 이후 바뀐 내용의 업데이트
    • 윈도우 컨테이너용 SQL 서버 개발 중단
      • 배경
      • 영향 범위
      • 대안
    • Docker 엔터프라이즈 부문 매각에 따른 제품 구성 변화
      • 배경
      • 영향 범위
      • 대안
    • Docker 허브의 이미지 다운로드 전송량 제한
      • 영향 범위
      • 대안
    • Docker 데스크톱(구 Docker 커뮤니티 에디션) 유료화
      • 배경
      • 영향 범위
      • 대안
    • 쿠버네티스에서 Docker 런타임 지원 제외
      • 배경
      • 영향 범위
      • 고려할 사항
    • 앙보이 윈도우 버전 정식 출시
      • 배경
      • 함께 보면 좋은 자료
    • 윈도우 서버 2022 정식 출시와 출시 주기의 회귀
      • 배경
      • 영향 범위
      • 고려할 사항
    • 컨테이너 베이스 이미지와 호스트 OS의 버전 일치 제약 완화
      • 배경
      • 테스트 결과
      • 정리

  • 부록 2. 윈도우 컨테이너 개발 환경 구축하기
    • 윈도우 컨테이너 소개
    • 윈도우 컨테이너 개요
    • 컨테이너 이미지
    • 베이스 이미지의 종류
    • 컨테이너 격리 방식 이해하기
    • 격리 방식의 차이점
    • 알기 쉽게 정리한 격리 방식 적용 조건
    • 실제 사례 살펴보기
    • OS 릴리스 버전 이해하기
    • 컨테이너 실행 환경의 선택과 관리
      • 개발 환경과 CI
      • 컨테이너 오케스트레이션
      • 윈도우 컨테이너의 라이선스
      • 윈도우 컨테이너 개발 환경 준비
    • 가상화 또는 중첩 가상화 지원 여부 확인하기
    • 데스크톱용 Docker 설치하기
      • 윈도우 컨테이너 호스트로 전환하기
    • 윈도우 서버에서 컨테이너 환경 구축하기
    • 권장: 서버에 SSH 접속 활성화하기
    • 오픈 SSH 서버 설치하고 구성하기
    • 비대칭 키 인증 적용하기
    • $HOME\.ssh\authorized_keys 파일 사용법
    • administratorsauthorizedkeys 사용법
    • 인증 키 정보를 담은 파일 권한 설정하기
    • SSH 기본 셸 변경하기
    • SSH 서비스 시작하기
    • 안전한 파일 송·수신 기능 사용하기
    • 권장: 클라이언트에서 SSH 접속 준비하기
    • 윈도우 컨테이너와 Docker 엔터프라이즈 에디션 활성화하기
    • 첫 윈도우 컨테이너 애플리케이션 만들기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안