머리말 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 만들기 1
책 속으로
컨테이너를 이용한 가상화는 리눅스 기반의 물리적 공간 격리가 아닌 프로세스 격리를 통해 경량의 이미지를 실행하고 서비스할 수 있는 컨테이너(container 기술이다. 사전적 의미로 보면, 컨테이너는 특정 대상을 격리하는 공간을 뜻한다. 따라서 클라우드 서비스의 컨테이너는 애플리케이션을 구동하는 환경을 격리한 공간을 의미한다. _11쪽
데브옵스(DevOps는 단순하게 업무, 부서(팀, 방법론, 기술 형태로 제한하지 않는다. 업무적으로 상충관계(trade-off에 있는 모든 형태에 적용할 수 있다. 예를 들어, 보안 강화를 위해 암호화 등의 추가 구성을 수행하면 일반적으로 서비스 품질 저하(처리 시간 증가 등가 발생할 수 있다. 보안을 담당하는 사람과 품질 관리를 수행하는 사람 간 소통을 통해 절충과 좋은 서비스의 품질을 보장받을 수 있게 된다. _22쪽
도커 작동 과정에서 눈여겨볼 것은 컨테이너 동작에 필요한 모든 내용을 사전에 코드로 작성하여 앤서블, 셰프, 베이그런트, 퍼핏과 같은 인프라 프로비저닝(provisioning 도구로 자동화하게 되면 기업이 필요할 때마다 애플리케이션 및 서버 환경을 적은 비용으로 빠르게 개발, 배포, 확장할 수 있다는 것이다. 이러한 개념을 IaC(Infrastructure as Code, 코드로서의 인프라스트럭처라고 한다. _61쪽
Dockerfile은 도커 이미지, 즉 필요로 하는 개발환경을 제공하기 위한 여러 가지 명령어들의 집합체다. 여기에 사용되는 명령어는 17개 정도이고, 각 명령어의 의미와 권장 사용 방법을 통해 최적의 인프라 환경을 제공할 수 있다. 명령어는 대소문자를 구분하지는 않지만 키워드 가독성을 위해 권장한다. _157쪽
도커 컴포즈(docker-compose는 테스트, 개발, 운영의 모든 환경에서 구성이 가능한 오케스트레이션 도구 중 하나다. 다만, 다양한 관리 기능을 갖고 있지 않기 때문에 테스트와 개발환경에 적합하다. 실제 운영 환경은 많은 관리적 요소가 필요하기