Description
다양한 개발 환경에서의 Docker 사용을 위한 Web 애플리케이션 개발 환경 구축 노하우
이 책은 가상화 기술 중 하나인 Docker 사용에 대한 해설서이며, 이미지 빌드에 중점을 두었습니다. 여러 언어와 프레임워크를 대상으로 Docker 이미지를 빌드하거나 Docker 컨테이너 상에서 동작 확인, 개발 작업을 진행하기 위한 과정을 튜토리얼 형식으로 소개합니다.

Docker를 이용하여 Web 애플리케이션 개발 환경 구축 노하우와 환경 구축 후, 어떻게 효율적으로 개발하는지 배워봅니다. Web 애플리케이션과 머신러닝 영역에서 사용되는 PHP의 Laravel, Node.js의 Nuxt.js, Ruby의 Sinatra로 개발 환경을 구축해 봅니다. 기본적인 Docker 사용법뿐만 아니라 다양한 환경 구축과 함께 Docker 이미지 활용법, Docker 이미지 경량화 등 실무에서 필요한 내용까지 담고 있습니다.

저자

사쿠라이요이치로.무라사키다이스케

저자:사쿠라이요이치로
Retty주식회사엔지니어.
도쿄대학대학원정보공학계연구과창조정보학전공하여NEC개발부문에서7년간근무했다.업무겸개인적으로다수의Web서비스,애플리케이션을개발한이후Retty주식회사창업시기에합류후두번의iOS앱리뉴얼담당했다.
iOS개발이외에도서버사이드개발등Docker와Kubernetes를이용한사내개발환경구축등다양한업무를담당했고,try!SwiftTokyo에서Organizer를맡는등커뮤니티활동도활발히하고있다.

저자:무라사키다이스케
2016년부터프리랜서엔지니어로활동하는정보공학박사이다.
Web업종의스타트업기업을중심으로개발지원및컨설팅담당하고있다.

역자:박현태
일본의클라우드기업에서10년이상인프라서비스개발자겸엔지니어로활동했다.
주로OpenStack을이용한개발을업무를했지만,최근엔Docker,Kubernetes와같은컨테이너기술에도관심을가지고있다.최근엔글로벌외자계에서클라우드테크니컬어카운트매니저로활동중이다.

목차

Chapter1Docker의기본
1-1시작하기
1-1-1이책의목적
1-1-2들어가기에앞서
1-2Docker란
1-2-1컨테이너형가상화
1-2-2Docker이미지
1-2-3Docker를개발운영개선의솔루션으로고려하기
1-2-4DockerCompose
1-3Docker설치
1-3-1Linux(Ubuntu)인경우
1-3-2Windows인경우
1-3-3macOS인경우
1-4Docker커맨드와명령
1-4-1DockerCLI커맨드
1-4-2Dockerfile명령
1-4-3DockerCompose커맨드

Chapter2실전용Docker이미지구축하기
2-1PHP실행환경구축하기
2-1-1Laravel환경
2-1-2최초의프로젝트틀만들기
2-1-3프로젝트틀을사용한실행환경이미지만들기
2-1-4효율적인build를위한설정하기
2-1-5로컬개발환경
2-1-6인증도입하기
2-2Node.js실행환경구축하기
2-2-1Node.js환경
2-2-2최초의프로젝트틀만들기
2-2-3프로젝트틀을사용한실행환경이미지만들기
2-2-4효율적인build를위한설정하기
2-2-5로컬개발환경
2-2-6Node실행환경init옵션
2-3Ruby실행환경구축하기
2-3-1Sinatra란
2-3-2사전준비
2-3-3DockerCompose프로젝트만들기
2-3-4베이스이미지의동작확인하기
2-3-5호스트환경디렉터리의접속설정하기
2-3-6Sinatra설치하기
2-3-7Web서버실행하기

Chapter3개발작업에적합한Docker환경구축하기
3-1RubyonRails실행환경구축하기
3-1-1RubyonRails란
3-1-2사전준비
3-1-3DockerCompose프로젝트만들기
3-1-4Node.js환경추가하기
3-1-5Node.js패키지사용할수있도록하기
3-2Rails애플리케이션만들기
3-2-1Rails커맨드로파일세트만들기
3-2-2Web서버실행하여동작확인하기
3-3개발에필요한구성추가하기
3-3-1컨테이너시작할때클린업하기
3-3-2개발용툴설정수정하기
3-3-3Spring을사용하기위한구성추가하기
3-3-4Webpacker를사용하기위한구성추가하기
3-3-5데이터베이스실행하기(PostgreSQL)
3-3-6데이터베이스실행하기(MySQL)

Chapter4제3자가배포한Docker이용하기
4-1JupyterLab환경만들기
4-1-1JupyterLab이란
4-1-2사전준비
4-1-3JupyterDockerStacks에대해서
4-1-4JupyterLab의컨테이너구성하기
4-1-5컨테이너환경유저의정보설정하기
4-1-6인증정보고정하기
4-2PyTorch사용하기
4-2-1PyTorch란
4-2-2빌드된이미지사용하기
4-2-3베이스이미지확인하기
4-2-4PyTorch를설치한이미지빌드하기
4-2-5PyTorch사용여부확인하기
4-2-6PyTorch코드실행하기
4-3컨테이너환경에서GPU(CUDA)사용하기
4-3-1CUDA란
4-3-2NVIDIADocker사용하기
4-3-3GPU를이용한학습처리실행하기
4-4Visdom으로데이터시각화하기
4-4-1Visdom이란
4-4-2Visdom서버가동작하는컨테이너만들기
4-4-3Visdom서버의동작확인하기
4-4-4학습처리상태실시간으로표시하기
4-4-5기본설정으로Visdom사용하기

Chapter5Docker기능구사하기
5-1Docker이미지
5-1-1이미지와레이어
5-1-2레이어조사하기
5-1-3이미지크기최적화하기
5-1-4멀티스테이지빌드사용하기
5-1-5Alpine이미지사용하기
5-1-6BuildKit사용하기
5-2엔트리포인트구사하기
5-2-1ENTRYPOINT와CMD의차이점
5-2-2docker-entrypoint.sh준비하기
5-2-3ENTRYPOINT초안
5-2-4커맨드내용편집하기
5-2-5사전처리실행하기
5-3볼륨과네트워크
5-3-1DockerDesktopforMac에서볼륨공유하기
5-3-2설치시에생성되는네트워크
5-3-3독립적인네트워크사용하기
5-3-4사설IP대역의충돌회피하기