품목정보
출간일 | 2021년 12월 27일 |
---|---|
쪽수, 무게, 크기 | 384쪽 | 736g | 188*245*18mm |
ISBN13 | 9791191600469 |
ISBN10 | 1191600467 |
출간일 | 2021년 12월 27일 |
---|---|
쪽수, 무게, 크기 | 384쪽 | 736g | 188*245*18mm |
ISBN13 | 9791191600469 |
ISBN10 | 1191600467 |
마이크로서비스 아키텍처(MSA) 환경에서 최적의 컨테이너 서비스를 위한 도커 활용법 이 책은 저자의 오랜 강의를 통한 개념 전달 경험과 전문성을 반영하여 도커 컨테이너의 설치, 활용, 배포를 학습하고 AWS에서 사용해 보는 방법이 포함된 이론 및 실습서다. 도커를 이용한 컨테이너 서비스를 업무 애플리케이션에 도입하고자 하는 모든 사람들이 도커의 기본부터 충실히 배울 수 있도록 구성되었다. |
머리말 viii 추천사 x 베타리더 후기 xiii CHAPTER 01 클라우드 컴퓨팅 1 1.1 클라우드 컴퓨팅 개요 3 1.1.1 클라우드 컴퓨팅이란? 3 1.1.2 클라우드 컴퓨팅 구조 5 1.1.3 클라우드 컴퓨팅 제공 방식과 클라우드 서비스 종류 6 1.2 컨테이너 기술과 도커 10 1.2.1 가상머신과 컨테이너 10 1.2.2 도커 12 1.2.3 도커 맛보기: PWD 15 1.3 쿠버네티스 20 1.4 데브옵스 22 CHAPTER 02 도커 설치 25 2.1 도커 엔진 27 2.2 리눅스용 도커 엔진 설치 29 2.2.1 도커 설치 환경 29 2.2.2 Ubuntu 18.04에 패키지를 이용한 도커 커뮤니티 에디션(CE) 설치 31 2.2.3 CentOS 7에 패키지를 이용한 도커 커뮤니티 에디션(CE) 설치 35 2.3 윈도우/macOS용 도커 엔진 설치 37 2.3.1 윈도우/macOS용 도커 툴박스 설치 37 2.3.2 윈도우용 도커 엔진 설치 42 2.3.3 macOS용 도커 엔진 설치 45 2.4 도커 확인 46 2.4.1 도커 컨테이너 서비스 46 2.4.2 도커 정보 확인 48 CHAPTER 03 컨테이너 서비스를 위한 도커 활용 57 3.1 컨테이너 서비스 59 3.1.1 컨테이너 서비스란? 59 3.1.2 왜 도커 컨테이너 서비스일까? 60 3.2 도커 명령어 활용 62 3.2.1 도커 이미지 명령어 62 3.2.2 도커 컨테이너 명령어 81 3.2.3 도커 볼륨 활용 96 3.2.4 도커 컨테이너의 자원 사용에 대한 런타임 제약 108 3.2.5 도커 네트워크 118 3.2.6 도커 kill 명령과 초기화 148 CHAPTER 04 컨테이너 환경 구성을 위한 Dockerfile 구성 153 4.1 코드로 개발하는 컨테이너 인프라, Dockerfile 155 4.1.1 IaC와 Dockerfile 155 4.1.2 최적의 Dockerfile 만들기 156 4.2 Dockerfile 명령어와 이미지 빌드 157 4.2.1 Dockerfile 명령어 157 4.2.2 이미지 생성을 위한 Dockerfile 빌드 163 4.2.3 이미지 빌드 과정 173 4.3 Dockerfile을 활용한 다양한 이미지 생성 180 4.3.1 다양한 방법의 Dockerfile 작성 182 4.4 깃허브를 활용한 Dockerfile 코드 공유 197 4.4.1 깃허브 사용 198 4.4.2 도커 허브의 자동화된 빌드와 깃허브 201 4.5 개별 이미지 저장을 위한 프라이빗 레지스트리 구성 210 4.5.1 도커 레지스트리 컨테이너 211 4.5.2 도커 레지스트리 웹 GUI 컨테이너 연결 213 4.5.3 오픈 소스 컨테이너 레지스트리 소개 215 CHAPTER 05 도커 컴포즈 도구를 이용한 다중 컨테이너 애플리케이션 서비스 배포 217 5.1 도커 컴포즈 219 5.1.1 도커 컴포즈 설치 219 5.1.2 도커 컴포즈 야믈 코드 작성 224 5.1.3 도커 컴포즈 명령어 238 5.1.4 도커 컴포즈 애플리케이션 로드 밸런스 구성 246 CHAPTER 06 AWS 클라우드를 활용한 컨테이너 서비스 배포 251 6.1 AWS 클라우드 ECS 253 6.1.1 AWS 컨테이너 오케스트레이션 도구 253 6.1.2 AWS 클라우드 가입 254 6.2 AWS 클라우드 EC2 + Docker + ECR 구성해 보기 255 6.2.1 도커 컨테이너를 위한 서버 구성: AWS EC2 인스턴스 255 6.2.2 EC2 인스턴스에 도커 설치 및 테스트 264 6.2.3 AWS 기반의 이미지 저장소(ECR) 생성 269 6.3 AWS 클라우드 ECS 구성 워크숍 273 6.3.1 AWS ECS 워크숍: 작업 순서 273 6.3.2 AWS ECS 워크숍: 인프라 구성 275 6.3.3 AWS ECS 워크숍: AWS Cloud9 도구를 이용한 개발 환경 구성 297 6.3.4 AWS ECS 워크숍: 도커 이미지 저장소 ECR 구성 303 6.3.5 AWS ECS 워크숍: ECS 환경 구성 309 6.3.6 AWS ECS 워크숍: 웹 서비스 배포 테스트 325 APPENDIX 도커 스웜 모드 클러스터 활용 329 A.1 다중 호스트 기반의 도커 스웜 모드 클러스터 331 A.1.1 도커 스웜 모드 개요 331 A.1.2 도커 스웜 모드 오케스트레이션 도구의 주요 기능 331 A.2 도커 스웜 모드 클러스터 구성 334 A.2.1 도커 스웜 모드 구성을 위한 서버 구성 334 A.2.2 도커 스웜 모드 초기 연결 구성: swarm init와 swarm join 336 A.2.3 도커 스웜 모드 모니터링을 위한 구성 340 A.3 도커 스웜 모드 워크숍 347 A.3.1 도커 스웜 모드 워크숍 1: nginx를 이용한 서비스 컨테이너 배포와 관리 347 A.3.2 도커 스웜 모드 워크숍 2: 서비스 유지관리를 위한 기능 352 A.3.3 도커 스웜 모드 워크숍 3: 도커 스웜 스택을 이용한 애플리케이션 서비스 구성 360 찾아보기 366 |
도커에 대해서, 참 꼼꼼하고 자세하게 서술한 책입니다. 개념설명도 상당히 적절했고, 무엇보다 필요한 실습을 어떻게 진행해야 하는지, 어떤 명령을 입력하면 어떤 결과가 나오는지 까지도 친절하게 설명되어 있습니다.
벌써, 18년전 쯤이었던 것 같습니다. 당시에 다니던 회사에서는 마이크로소프트의 임베디드 운영체제를 사용했었는데요. 빌드 환경을 구축하는 것 자체가 꽤 복잡한 일이었습니다. 어떤 버전의 환경을 설치하고 패치를 어떻게 하느냐에 따라서, 제대로 빌드가 되기도 안되기도 했습니다.
결국, 개발환경을 백업받는 작업 조차가 큰일이 되었습니다. 하드디스크를 복사하는 기계를 따로 샀고, 개발환경을 유지하는 업무를 전담하는 사람이 필요한 지경에 이르기 까지 했습니다.
그러다가, vmware라는 솔루션을 접하게 됩니다. 가상환경을 만들고 거기에 운영체제부터 개발 환경까지 모두 올릴 수 있었습니다. 이제 하드디스크에 라벨을 붙이며 쌓아놓고 관리할 필요는 없어졌습니다. vmware 이미지를 잘 관리하면 되었으니까요. 하지만, 그조차도 몇 기가씩 되었기 때문에 그리 만만한 상황은 아니었습니다.
언젠가 부터는 virtualbox라는 솔루션이 있다는 것을 알게 됩니다. 때 마침 빌드환경도 리눅스가 필요했고, 윈도우 보다는 좀 가벼운 가상환경을 돌릴 수 있었습니다.
하지만, 그래도 느렸습니다. 내 컴퓨터에 이미 설치되어 있는 운영체제를 호스트 운영체제라고 하고 가상환경 위에 올라오는 운영체제를 게스트 운영체제라고 하면, 제 컴퓨터는 운영체제를 두개 운영하고 있는 셈이 되니까요.
좀더 빠르게 써보겠다고 가끔 한번씩 별에 별짓을 다했던 것 같습니다. ...
우분투 배포판에는 GUI가 들어가지 않은 서버만을 위한 패키지가 따로 있다는 것을 알았고, 서버만 그리고 빌드에 필요한 라이브러리들만 하나씩 선택해서 설치하고 사용했던 기억이 있습니다.
그리고, docker라는 기술에 대해 소문이 들리기 시작합니다. 처음엔 기존 가상환경보다 빠르다는 말을 이해하지 못했습니다. ' 그렇다 해도 호스트 운영체제 위에 게스트 운영체제를 올리는 것이 아닌가? '
하지만, 아닙니다. 도커는 " 컨테이너 " 로 이미 있던 기술을 쓰기좋게 포장한 것이라고 했습니다. 리눅스 계열에서 도커를 쓰면 컨테이너 기능만이 서버 자원을 쓰기 때문에, 사실상 속도의 차이가 거의 없이 빠르게 쓸 수 있답니다.
그리고, ( 지금까지 그렇게 꿈꾸던 ) "실행환경"을 캡슐화하는 보편적인 기술로 자리 잡았습니다. 별짓을 다했었던것 같은데, 도커라는 기술로 실행환경을 캡슐화하고, 더 나아가서 실행환경을 "코드"로 바꿀 수 있게 되었습니다.
이 책은 이 지점부터 이야기를 시작합니다. 저는 4,5년전에 도커를 접하고 1여년간 사용한 경험이 있는데요. 그래서, 이 책의 저자가 도커를 운영하는 과정에 명령을 넣고 어떤 결과가 출력하는지까지 서술해 준 부분이 상당히 마음에 들었습니다. 대부분 콘솔명령만으로 실습을 해야 하기 때문에, 어떤 결과가 나오는지 알려면, 결과 출력이 어떤 모양인지 알고 있어야 하거든요.
그리고, 이 책을 통해 그동안 도커가 꽤 많이 발전했다는 것도 이해할 수 있었습니다. 지금 일하고 있는 회사에서는 올해 클라우드를 사용할 계획을 세우고 있습니다. 이제 다시 도커를 꺼내들 시기가 된것 같군요. 이 책에 클라우드에 대한 이야기가 올해 업무에 꽤 도움이 될 것 같네요.
[제이펍의 서평이벤트에 참여하여 받은 책을 읽고 작성한 리뷰입니다.]
2021년 12월에 출간된 제이펍 출판사의 <도커, 컨테이너 빌드업!>을 소개합니다. 이 책의 부제는 '최적의 컨테이너 서비스를 위한 도커 활용법'입니다.
이 책의 저자는 이현룡 님으로 오라클, 클라우드 전문가로 알려져 있습니다. 2005년부터 OCMKOREA 운영자로 활용하고 계십니다. 아마도 오라클을 경험한 분이라면 이 사이트를 방문했던 기억이 있으실 것 같네요.
<도커, 컨테이너 빌드업!>은 약 380페이지로 구성되어 있어 휴대하면서 읽기에 부담스럽지 않습니다. 다만, 전자책 출간 소식이 없는 부분은 조금 아쉬운 부분입니다. 필자는 서평단에 참가하여 PDF 파일로 이 책을 마주했었는데, 제이펍 출판사도 전자책 출판에 힘을 써주셨으면 하는 개인적인 바람이 있습니다.
제이펍 IT 전문가 리뷰어에 참가하여 작성한 글이며, 제이펍에서 제공해준 책을 읽고 작성했음을 밝힙니다.
도커는 2013년 3월 닷클라우드의 엔지니어였던 'Solomon Hykes'가 발표한 이후로 꾸준히 기술 개발을 통해 컨테이너 가상화를 이용한 차세대 클라우드 인프라 솔루션의 사실상 표준으로 자리를 잡고 있습니다.
다음은 이 책이 어떤 느낌인지를 보여드리기 위해 2.1절의 내용을 소개하겠습니다.
도커에서 사용하는 컨테이너 가상화 기술의 변화에 대해 알아보자.
초기 도커는 리눅스 컨테이너 기술인 LXC를 기반으로 하는 컨테이너였다. 이후 0.9.0 버전부터는 libcontainer OCI를 이용하였고, 1.11.0 이후 버전부터는 runC OCI를 이용한다. 현재 버전에 포함된 runC 라이브러리는 운영체제에서 독립적으로 사용되는 일종의 드라이버다. 이를 통해 호스트 운영체제 의존성이 제거되면서 리눅스 플랫폼에 의존적인 LXC를 대체하게 됐다.
어떤 느낌이신가요? 필자가 생각하기에 도커를 처음 학습하려는 분이 이 책을 보는 것은 다소 어려울 것으로 생각합니다. 앞에서 살펴본 것처럼 컨테이너 세상의 용어 하나하나가 생소한 분들이 이 책을 보면 많이 어렵게 느껴질 것입니다. 다만 CS 세상의 경험이 있으신 분이라면 충분히 찾아보면서 학습할 수는 있을 것으로 판단됩니다.
도커를 처음 접하는 분들은 기존에 제가 리뷰했던 제이펍 출판사의 <15단계로 배우는 도커와 쿠버네티스>을 보는 것을 추천드리고, 조금 더 도커에 대한 지식을 체계적으로 정리하고 싶은 분들이 이 책을 보는 것이 더 효과적일 것으로 생각됩니다.
<도커, 컨테이너 빌드업!>은 6개의 챕터와 1개의 부록으로 구성되어 있습니다. 도커 설치부터 시작하여 도커의 기반 활용법, 그리고 Dockerfile 구성 방법에 대한 안내, 컨테이너 배포 등 필요한 내용을 두루두루 다루고 있습니다. 저는 특히 3.2.5절의 도커 네트워크를 다룬 부분을 가장 인상 깊게 봤습니다.
다음은 Dockerfile 부분의 entiypoint에 대한 설명입니다. 이 예에서 보는 바와 같이 초보자가 느끼기에는 조금 어렵게 느껴질 수도 있지만, 도커에 익숙한 분이라면 도움을 받을 수 있는 요소들을 담고 있습니다. 이 책은 이렇게 저자의 꼼꼼함이 많이 느껴집니다.
<도커, 컨테이너 빌드업!>은 도커를 다뤄야 하는 사람들이 지녀야 할 기본기와 지식을 잘 정리해 놓은 책입니다. 실제로 이 책을 활용하여 실습을 직접 수행하고 경험해 본다면 도커를 활용할 때 큰 도움을 받을 수 있을 것입니다.
개인적으로 도커를 활용할 때 필요한 내용을 잘 정리해 놓은 책이라고 생각합니다.
도커를 위시한 컨테이너 서비스들이 현대 CS 세계에서 큰 비중을 차지하고 있습니다. 최근에 여러 사건으로 말미암아 도커의 비중이 조금씩 낮아지고 있지만, 아직도 컨테이너 서비스의 선두주자로 판단하고 있습니다. 실제 대부분의 컨테이너 애플리케이션이 도커를 기반으로 만들어지는 것도 사실입니다.
제 블로그에서 제이펍 출판사의 <15단계로 배우는 도커와 쿠버네티스>를 리뷰한 적이 있었습니다. 먼저 그 책을 보고 난 후에 이 책을 보면 도커와 컨테이너에 대한 훨씬 더 이해도가 높아질 것으로 생각합니다.
"제이펍 <IT 전문서 리뷰어> 활동을 위해서 책을 제공받아 작성된 서평입니다."
예제 파일 다운로드
최근 기업이 제공하는 IT 서비스 시장의 큰 주류는 클라우드화와 컨테이너화 이다
시장의 수요와 공급이 커지면서 빠르고 안정적인 서비스를 요구하는 고객들을 위해 많은 기업이 클라우드로 이전하는 것을 고민하고, 좀 더 빠르고 품질 좋은 서비스 배포를 위해 컨테이너화를 선택하고 있다
도커 컨테이너는 개발팀과 운영팀의 이견을 좁힐 수 있는 방법을 제공하고, 서버에 할애했던 수많은 유지관리 시간을 줄여 개발에 집중할 수 있게 한다
또한 커널 자원의 계승을 통해 훨씬 가볍고 성능 측면에서 뛰어난 애플리케이션 서비스를 제공해 준다
도커가 제공하는 기회는 마이크로 서비스와 서버리스 환경을 모색하기에 충분하며, 나아가 클라우드 환경에서 컨테이너화의 주축이 되고 있다
이 책은 컨테이너 기술을 통해 다양한 서비스 및 애플리케이션 배포를 준비하는 도커 입문자들에게 탄탄한 실력을 쌓게 하고자 도커 명령어의 활용을 실습하고 어떤 상황에서 의미가 있는지 설명하고 있으며, 좀 더 효율적인 도커 활용 방법과 기술을 보여주고 있다
서평
현재 회사에서 도커와 도커 컴포즈를 활용해 AWS 인스턴스를 생성하고 컨테이너를 통해 서비스를 구성하고 배포하고 있으며 도커 컨테이너를 적극 활용하고 있으며 도커 스웜을 활용해 스케일링을 하고 있다
도커 활용에는 어느정도 익숙하지만 가장 기본적인 부분에 대해서만 알고 사용하고 있어서 좀더 효율적으로 도커 컨테이너를 관리하고 좀더 빠른 빌드와 배포 그리고 안정적인 도커 컨테이너 운영과 모니터링, 도커 스웜을 활용하고 있지만 좀 더 정확하게 원하는대로 스케일링하고 축소할 수 있도록 컨트롤 하고 싶은 갈망이 있었다
하지만 이런 부분들은 수많은 구성과 테스트를 진행하면서 시행착오를 겪어야 되는 부분이고 발빠르게 개발해야되며 인프라 운영과 개발을 동시에 해야되는 스타트업에서는 시간적으로 이런 부분들을 고도화하기가 매우 힘들었었다
그런 부분에서 이책은 효율적인 도커 컨테이너 구성과 활용을 할 수 있는 노하우들을 전수해주며 필요한 부분만 빠르게 습득하고
테스트해볼 수 있어 매우 좋았다
가장 많은 도움이 됐던 부분은 바로 이 책에서 소개하고 있는 컨테이너들을 모니터링할 수 있는 도구와 도구를 활용하는 방법들 이었다
책 초반부에서 소개하고 있는 cAdvisor의 경우에도 모르고 있던 부분이며 이 책을 통해 알게되어 활용해볼만 하다고 생각이 들었다
또한 도커 의 cpu 리소스 런타임 제약 옵션도 신선했으며 도커 네트워크에 대한 지식도 좀 더 깊이있게 알 수있게 되어 활용할 수 있게 되었다
도커 컨테이너 이미지를 빌드하기 위한 Dockerfile 구성과 작성 방법에 대한 노하우도 현재 운영하고있는 Dockerfile을 어떻게 개선하면 좋을 지에 대한 노하우를 얻기에 충분했다
프라이빗 도커 컨테이너 레지스트리의 경우 현재 ECR을 활용할 계획이라 크게 활용할 계획이 있지는 않지만 유용한 정보였고
현재 회사에서 진행해야되는 부분인 AWS ECS 서비스 구성과 도커 스웜 배포와 모니터링이 매우 기대되는 부분이다
이부분은 이 책을 참조하며 현재 인프라 이전 및 구성 고도화 작업을 진행할 예정이다
마침 실무에 적재적소에 활용하기에 매우 좋은 책이 나와서 정말 100%로 만족하고 있는 책이다
이 책과 비슷한 인프라 환경을 구성하고 있거나 도커, 컨테이너 환경을 공부해보고자 하는 사람들에게 매우 많은 도움을 줄 수 있는 책이라고 생각한다
총평
도커, 컨테이너를 정말 실용적으로 활용할 수 있는 내용들로 실속있게 구성이 되어있다 정말 기초적인 초급자 수준의 도큐먼트를 읽어주는 기초 도커 서적이 아닌 도커 명령어들을 응용하고 활용하면서 실무에 충분히 활용할 수 있는 활용도가 매우 높은 내용들로 구성이 되어 있다
실무에서든 연습으로든 실제로 이 책의 내용을 참조해 도커 컨테이너를 구성하고 배포하면서 도커 컨테이너의 활용 노하우를 익혀나간다면 도커 컨테이너를 매우 효율적으로 활용할 수 있는 엔지니어가 될 수 있을 것이다
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다