- 평점평점점평가없음
- 저자아사 시호 (지은이), 이영란 (옮긴이), 야마다 요시히로 (감수)
- 출판사정보문화사
- 출판일2018-09-10
- 등록일2020-03-24
- 파일포맷pdf
- 파일크기51 M
- 지원기기
PCPHONETABLET 프로그램 수동설치전자책 프로그램 수동설치 안내
아이폰, 아이패드, 안드로이드, 태블릿, PC
책소개
인프라 기초 지식+인프라 환경 구축 입문서의 결정판!
이 책은 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서입니다. 특히 온프레미스 서버(물리 환경)에 대한 구축 경험이 적은 애플리케이션 엔지니어를 대상으로 OS나 네트워크 기술과 같은 인프라의 기초 개념을 그림으로 설명하면서 Docker/Kubernetes를 사용한 인프라 구축 및 운용의 기본적인 흐름과 절차를 설명하고 있습니다.
제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 환경 구축이나 클라우드를 사용한 실행 환경 구축 및 운용 관리 등 프로그래머가 보다 더 주력해야 하는 부분에 대해 자세히 설명하고 있습니다.
<책에서 다루는 주요 키워드>
- 컨테이너 기술과 Docker의 개요
- Dockerfile을 사용하여 코드로 서버 구축
- 멀티호스트 환경에서 Docker 실행 환경 구축
- 설치와 튜토리얼
- Docker 이미지의 공개
- 클라우드를 사용한 Docker 실행 환경 구축
- 시스템과 인프라의 기초 지식
- Docker 명령
- 여러 컨테이너의 운용 관리
- 클라우드를 사용한 Docker 실행 환경의 운용 관리
인프라 기초 지식&코드를 사용한 환경 구축의 자동화
기존의 시스템 개발에 종사하는 업무 애플리케이션 엔지니어는 고객의 업무 요구사항을 이해하고 거기에 맞춰 설계를 하고, 프로그래밍 언어를 사용하여 시스템을 구축한 후 사양대로 기능이 구현되었는지를 테스트 하는 것이 주요 업무였습니다. 오늘날에는 거기에 더해 네트워크나 OS의 도입, 시스템과 데이터베이스 서버와 같은 미들웨어의 설계나 운용 관리와 같은 인프라 구축의 기초 지식 및 구성 관리, 오케스트레이션 툴의 이용 방법 등이 필요하게 되었습니다.
이 책은 애플리케이션 엔지니어가 Docker를 활용하기 위해 필요한 정보와 기초 지식을 짧은 시간에 효율적으로 이해할 수 있도록 아주 초보적인 Docker의 사용법과 명령들을 설명하고 있습니다. 그리고 가능한 한 추상적이고 난해한 용어를 피하고 그림과 일러스트, 구체적인 명령의 실행 예를 사용해서 알기 쉽게 설명하고 있는 것이 이 책의 큰 특징입니다.
저자소개
금융계열 싱크탱크 등에서 은행 및 증권사용 인프라 엔지니어, 제조업용 인프라 엔지니어로 근무했다. 도시은행 정보 기반 시스템 구축 및 시스템 통폐합, 증권회사용 백오피스 시스템의 공통 기반 개발 및 통합인증 기반 구축 프로젝트, 석유/LNG 공장 건설을 하는 엔지니어링 기업의 시스템 기반 구축 프로젝트 등을 경험했다. 출산으로 퇴직 후 Linux나 클라우드 등을 독학으로 공부하여 초보자용 기술서를 집필했으며, 현재는 일본 마이크로소프트 주식회사에서 파트너용 영업활동과 기술지원 등에 종사하고 있다. 주요 저서로는 <완벽한 IT 인프라 구축을 위한 Docker (2판)> 등이 있다.목차
_들어가며
_이 책을 읽기 전에
대상 독자
이 책의 특징
동작 확인 환경
이 책의 표기
이 책의 서포트 페이지
샘플 애플리케이션의 다운로드
제1부 도입편
제1장 시스템과 인프라 기초 지식
1.1 시스템 기반의 기초 지식
시스템 기반의 구성 요소
클라우드와 온프레미스
클라우드가 적합한 케이스
온프레미스가 적합한 케이스
시스템 기반의 구축/운용 흐름
1.2 하드웨어와 네트워크 기초 지식
서버 장비
네트워크 주소
OSI 참조 모델과 통신 프로토콜
방화벽
라우터/레이어 3 스위치
1.3 OS(Linux) 기초 지식
Linux
Linux 커널
Linux 파일 시스템
Linux 디렉토리 구성
Linux 보안 기능
1.4 미들웨어 기초 지식
웹 서버/웹 애플리케이션 서버
데이터베이스 서버
시스템 감시 툴
1.5 인프라 구성 관리 기초 지식
인프라 구성 관리
코드를 사용한 구성 관리
대표적인 인프라 구성 관리 툴
지속적 인티그레이션/지속적 딜리버리
제2장 컨테이너 기술과 Docker의 개요
2.1 컨테이너 기술의 개요
컨테이너
컨테이너 역사
2.2 Docker의 개요
프로그래머에게 Docker란?
2.3 Docker의 기능
Docker 이미지를 만드는 기능(Build)
Docker 이미지를 공유하는 기능(Ship)
Docker 컨테이너를 작동시키는 기능(Run)
Docker 에디션
Docker 컴포넌트
2.4 Docker의 작동 구조
컨테이너를 구획화하는 장치(namespace)
릴리스 관리 장치(cgroups)
네트워크 구성(가상 브리지/가상 NIC)
Docker 이미지의 데이터 관리 장치
제2부 기본편
제3장 Docker 설치와 튜토리얼
3.1 Docker 설치와 작동 확인
Docker의 클라이언트 툴
Docker for Mac 설치하기
Docker for Windows 설치하기
Linux에 설치하기
Docker에서 ‘Hello world’
Docker 버전 확인(docker version)
Docker 실행 환경 확인(docker system info)
Docker 디스크 이용 상황(docker system df)
3.2 웹 서버를 작동시켜 보자
Docker 이미지 다운로드하기
Nginx를 작동시켜 보자
Nginx 작동 확인
Nginx 기동 및 정지
제4장 Docker 명령
4.1 Docker 이미지 조작
Docker Hub
이미지 다운로드(docker image pull)
이미지 목록 표시(docker image ls)
이미지 상세 정보 확인(docker image inspect)
이미지 태그 설정(docker image tag)
이미지 검색(docker search)
이미지 삭제(docker image rm)
Docker Hub에 로그인(docker login)
이미지 업로드(docker image push)
Docker Hub에서 로그아웃(docker logout)
4.2 Docker 컨테이너 생성/시작/정지
Docker 컨테이너의 라이프 사이클
컨테이너 생성 및 시작(docker container run)
컨테이너의 백그라운드 실행(docker container run)
컨테이너의 네트워크 설정(docker container run)
자원을 지정하여 컨테이너 생성 및 실행(docker container run)
컨테이너를 생성 및 시작하는 환경을 지정(docker container run)
가동 컨테이너 목록 표시(docker container ls)
컨테이너 가동 확인(docker container stats)
컨테이너 시작(docker container start)
컨테이너 정지(docker container stop)
컨테이너 재시작(docker container restart)
컨테이너 삭제(docker container rm)
컨테이너 중단/재개(docker container pause/docker container unpause)
4.3 Docker 컨테이너 네트워크
네트워크 목록 표시(docker network ls)
네트워크 작성(docker network create)
네트워크 연결(docker network connect/docker network disconnect)
네트워크 상세 정보 확인(docker network inspect)
네트워크 삭제(docker network rm)
4.4 가동 중인 Docker 컨테이너 조작
가동 컨테이너 연결(docker container attach)
가동 컨테이너에서 프로세스 실행(docker container exec)
가동 컨테이너의 프로세스 확인(docker container top)
가동 컨테이너의 포트 전송 확인(docker container port)
컨테이너 이름 변경(docker container rename)
컨테이너 안의 파일을 복사(docker container cp)
컨테이너 조작의 차분 확인(docker container diff)
4.5 Docker 이미지 생성
컨테이너로부터 이미지 작성(docker container commit)
컨테이너를 tar 파일로 출력(docker container export)
tat 파일로부터 이미지 작성(docker image import)
이미지 저장(docker image save)
이미지 읽어 들이기(docker image load)
불필요한 이미지/컨테이너를 일괄 삭제(docker system prune)
제5장 Dockerfile을 사용한 코드에 의한 서버 구축
5.1 Dockerfile을 사용한 구성 관리
Dockerfile이란?
Dockerfile의 기본 구문
Dockerfile 작성
5.2 Dockerfile의 빌드와 이미지 레이어
Dockerfile로부터 Docker 이미지 만들기
Docker 이미지의 레이어 구조
5.3 멀티스테이지 빌드를 사용한 애플리케이션 개발
Dockerfile 만들기
Docker 이미지의 빌드
Docker 컨테이너의 시작
5.4 명령 및 데몬 실행
명령 실행(RUN 실행)
데몬 실행(CMD 명령)
데몬 실행(ENTRYPOINT 명령)
빌드 완료 후에 실행되는 명령(ONBUILD 명령)
시스템 콜 시그널의 설정(STOPSIGNAL 명령)
컨테이너의 헬스 체크 명령(HEALTHCHECK 명령)
5.5 환경 및 네트워크 설정
환경변수 설정(ENV 명령)
작업 디렉토리 지정(WORKDIR 명령)
사용자 지정(USER 명령)
라벨 지정(LABEL 명령)
포트 설정(EXPOSE 명령)
Dockerfile 내 변수의 설정(ARG 명령)
기본 쉘 설정(SHELL 명령)
5.6 파일 설정
파일 및 디렉토리 추가(ADD 명령)
파일 복사(COPY 명령)
볼룸 마운트(VOLUME 명령)
제6장 Docker 이미지 공개
6.1 Docker 이미지의 자동 생성 및 공개
Automated Build의 흐름
GitHub에 공개하기
Docker Hub의 링크 설정
Dockerfile의 빌드
Docker 이미지 확인
6.2 Docker Registry를 사용한 프라이빗 레지스트리 구축
로컬 환경에 Docker 레지스트리 구축하기
Docker 이미지 업로드
Docker 이미지의 다운로드와 작동 확인
6.3 클라우드 서비스를 사용한 프라이빗 레지스트리 구축
Google Container Registry 준비하기
Docker 이미지의 업로드
Docker 이미지의 다운로드와 작동 확인
제3부 실행 환경 구축편
제7장 여러 컨테이너의 운용 관리
7.1 여러 컨테이너 관리의 개요
웹 3계층 시스템 아키텍처
영구 데이터의 관리
Docker Compose
7.2 웹 애플리케이션을 로컬에서 움직여 보자
Compose 구성 파일의 작성
여러 Docker 컨테이너 시작
여러 Docker 컨테이너 정지
7.3 Docker Compose를 사용한 여러 컨테이너의 구성 관리
docker-compose.yml의 개요
이미지 지정(image)
이미지 빌드(build)
컨테이너 안에서 작동하는 명령 지정(command/entrypoint)
컨테이너 간 연결(links)
컨테이너 간 통신(ports/expose)
서비스의 의존관계 정의(depends_on)
컨테이너 환경변수 지정(environment/env_file)
컨테이너 정보 설정(container_name/labels)
컨테이너 데이터 관리(volumes/volumes_from)
7.4 Docker Compose를 사용한 여러 컨테이너의 운용
Docker Compose의 버전 확인
Docker COmpose의 기본 명령
여러 컨테이너의 생성(up)
여러 컨테이너 확인(ps/logs)
컨테이너에서 명령 실행(run)
여러 컨테이너 시작/정지/재시작(start/stop/restart)
여러 컨테이너 일시 정시/재개(pause/unpause)
서비스의 구성 확인(port/config)
여러 컨테이너 강제 정지/삭제(kill/rm)
여러 리소스의 일괄 삭제(down)
제8장 멀티호스트 환경에서 Docker 실행 환경 구축
8.1 멀티호스트 환경에서 컨테이너 관리의 개요
멀티호스트 환경과 클러스터링
Docker Machine이란?
8.2 웹 애플리케이션을 서비스 공개해 보자
Docker 실행 환경 작성
웹 애플리케이션 전개
Docker 실행 환경 삭제
8.3 Docker Machine을 사용한 실행 환경 구축
Docker Machine의 기본 명령
실행 환경 작성(create)
실행 환경 목록 표시(ls/status/url)
실행 환경에 대한 SSH 연결(ssh)
실행 환경 시작/정지/재시작(start/stop/restart)
실행 환경으로부터 파일 다운로드(scp)
실행 환경 삭제(rm/kill)
실행 환경 정보 확인(ip/inspect)
제9장 클라우드를 사용한 Docker 실행 환경 구축
9.1 클라우드 환경에서 Docker 오케스트레이션하기
분산 환경에서의 컨테이너 운용 관리
퍼블릭 클라우드가 제공하는 매니지드 서비스
Google Cloud Platform의 컨테이너 관련 서비스
9.2 Kubernetes의 개요
Kubernetes의 서버 구성
애플리케이션 구성 관리(Pod, ReplicaSet, Deployment)
네트워크 관리(Service)
Label을 사용한 리소스 식별
Kubernetes의 구조
9.3 GCP를 사용한 Docker 애플리케이션 개발
애플리케이션 개발 흐름
소스코드 관리(Cloud Source Repositories)
Docker 이미지 빌드(Cloud Container Builder)
9.4 GCP를 사용한 Docker 애플리케이션 실행 환경 구축
Kubernetes 클러스터 구축
애플리케이션의 설정 정보 관리(ConfigMap, Secrets)
앱의 전개(Deployment)
서비스 공개(Service)
앱의 버전업(Blue-Green Deployment)
배치 잡 실행(CronJob)
제10장 클라우드를 사용한 Docker 실행 환경의 운용 관리
10.1 시스템 운용의 기초 지식
가용성 관리
수용성(Capacity) 관리
시스템 감시
10.2 GKE를 사용한 Docker 실행 환경의 운용
Kubernetes의 스테이터스 확인
Kubernetes의 Pod 관리
Kubernetes의 노드 관리
Kubernetes의 리소스 작성/삭제/변경
Kubernetes의 업그레이드/다운그레이드
Stackdriver에서 로그 확인
부록 Google Cloud Platform 사용법
A.1 계정 등록
[1] 등록 시작
[2] 계정 정보 등록
A.2 프로젝트 작성과 삭제
[1] 프로젝트 작성
[2] 프로젝트명 설정
[3] 프로젝트 삭제
A.3 Cloud Console 사용법
툴과 서비스
대시보드
A.4 Cloud Shell 사용법
A.5 Cloud SDK 설치하기