책소개
도커의 기본부터 고급 활용까지 쉽게 배우는 단계별 가이드 도커를 따라 하다 보면 명령어는 실행했지만, 정확히 어떻게 동작하는지 알기 어렵거나, 이미지를 만들었는데 컨테이너가 실행되지 않는 상황을 경험하게 된다. RUN과 CMD처럼 비슷해 보이는 개념이 실제로 무엇이 다른지 헷갈릴 때도 많다. 단순히 명령어를 입력하는 것만으로는 도커의 원리를 제대로 이해하기 어렵기 때문이다.이 책은 도커의 기초 개념부터 개발 환경 구축까지 핵심 내용을 단계적으로 익힐 수 있도록 구성된 입문서이다. 명령어와 개념을 그림과 함께 설명해 누구나 쉽게 이해할 수 있으며, 실무에서 활용할 수 있는 다양한 예제도 제공한다. 도커 컨테이너, 이미지, 네트워크, 볼륨 등 필수 개념을 익히고, 도커 컴포즈를 활용한 개발 환경 구성 방법까지 자세히 다룬다. 또한, 운영 시 주의할 점과 디버깅 노하우를 소개해 실무에서 도커를 더욱 효과적으로 활용할 수 있도록 돕는다. 이 책을 통해 도커를 제대로 이해하고 실무에 적용하는 방법을 단계별로 배워보자.
저자소개
별명은 호게 상. 어쩌다 들어간 대학의 정보통신 계열 학과에서 프로그래밍을 접한 후 정보통신 분야에 빠져들었다. 2012년 모 전자 메이커 대기업에 취직해서 백엔드 엔지니어로서 ISP 서비스 개발에 종사했다. 2021년 미라이토디자인으로 이직, 현재는 Zenn(엔지니어 정보 공유 커뮤니티)에 투고하거나 회사 유튜브 채널에 진지한 동영상이나 그렇지 못한 동영상을 공개하고 있다.
목차
[1부 가상화와 도커 기본 지식]1장 가상화 _1.1 물리 머신과 가상 머신 _1.2 가상화 소프트웨어 종류 _1.3 컨테이너형 가상화 특징 2장 도커와 주변 요소 살펴보기 _2.1 도커의 구성 요소 _2.2 컨테이너와 이미지 규격 3장 도커 설치 _3.1 윈도우에서 도커 사용하기 _3.2 맥OS에서 도커 사용하기 4장 도커 기본과 대원칙 _4.1 명령어와 프로세스 _4.2 컨테이너 _4.3 이미지 _4.4 도커파일_4.5 명령어 기초 지식 _4.6 명령어 치트 시트 [2부 도커 컨테이너 활용법]5장 컨테이너 기초 지식_5.1 컨테이너 상태와 프로세스 _5.2 컨테이너 명령어 6장 컨테이너 기본 조작_6.1 컨테이너 가동하기 container run_6.2 컨테이너 목록 확인하기 container ls_6.3 컨테이너 정지하기 container stop_6.4 컨테이너 삭제하기 container rm 7장 루비 컨테이너로 인라인 실행하기 _7.1 컨테이너 가동 시 임의의 처리 실행하기 container run [COMMAND]_7.2 컨테이너에 이름 붙이기 container run --name_7.3 컨테이너 정지 시 자동으로 삭제하기 container run --rm 8장 파이썬 대화형 셸을 가동해서 컨테이너와 소통하기 _8.1 컨테이너를 대화형 모드로 조작하기 container run --interactive --tty9장 Nginx 서버를 가동해서 브라우저에서 접속하기_9.1 컨테이너 포트 공개하기 container run --publish10장 MySQL 서버를 백그라운드로 가동하기_10.1 컨테이너 환경 변수 설정하기 container run --env_10.2 컨테이너를 백그라운드로 실행하기 container run --detach11장 PostgreSQL 서버를 가동해서 이것저것 확인해 보기_11.1 컨테이너 출력 확인하기 container logs_11.2 가동 중인 컨테이너에 명령하기 container exec_11.3 PostgreSQL 서버에 접속하는 방법 정리하기[3부 도커 이미지 활용법]12장 이미지의 기본 내용_12.1 왜 이미지 조작을 이해해야 하는가?_12.2 완전한 이미지명과 태그_12.3 레이어와 메타데이터_12.4 이미지 명령어13장 이미지 기본 조작_13.1 이미지 목록 확인하기 image ls_13.2 이미지 취득하기 image pull_13.3 이미지 상세 내용 확인하기 image inspect14장 다른 버전의 MySQL 서버 가동하기_14.1 도커 허브에서 이미지 찾기_14.2 컨테이너 가동 시 이미지 태그 지정하기15장 vi를 설치한 우분투 이미지를 작성하고 공유하기_15.1 컨테이너에 vi 설치하기_15.2 컨테이너 이미지화하기 container commit_15.3 컨테이너를 tar로 이미지화하기 container export + image import_15.4 이미지를 tar로 만들고 다시 이미지화하기 image save + image load[4부 도커파일 활용법]16장 도커파일 기초_16.1 도커파일이 필요한 이유_16.2 도커 허브의 레이어 정보 해석하기_16.3 도커파일 명령 목록17장 vi를 사용할 수 있는 우분투 이미지 만들기_17.1 베이스 이미지 지정하기 FROM_17.2 도커파일로 이미지 빌드하기 image build_17.3 명령어를 실행해서 레이어 확정하기 RUN18장 시간대와 로그 출력이 설정된 MySQL 이미지 만들기_18.1 이미지 환경 변수 지정하기 ENV_18.2 호스트머신의 파일을 이미지에 추가하기 COPY19장 가동할 때 웹서버를 실행하는 파이썬 이미지 만들기_19.1 컨테이너 가동 시 명령어 지정하기 CMD[5부 고급 도커 컨테이너 활용법]20장 볼륨과 네트워크 기초_20.1 볼륨_20.2 네트워크21장 MySQL 컨테이너 데이터가 사라지지 않게 만들기_21.1 볼륨 작성하기 volume create_21.2 컨테이너 가동할 때 볼륨 마운트하기 container run --mount22장 호스트머신에서 편집한 파일을 루비 컨테이너에서 실행하기_22.1 바인드 마운트 이용하기 container run --mount_22.2 볼륨과 바인드 마운트의 차이점23장 PHP 컨테이너에서 MySQL 컨테이너와 통신하기_23.1 네트워크 작성하기 network create_23.2 컨테이너 가동 시 네트워크에 접속하기 container run --network_23.3 기본 브릿지 네트워크를 사용한 컨테이너 통신[6부 고급 도커 컨테이너 활용법]24장 구성 정리하기_24.1 앞으로 만들 웹 서비스_24.2 구성 정리하기_24.3 이 장의 정리25장 필요한 이미지 준비하기_25.1 디렉터리 작성_25.2 DB 이미지 정리하기_25.3 메일 이미지 정리하기_25.4 앱 이미지 준비하기_25.5 이 장의 정리26장 컨테이너 이외의 리소스 준비하기_26.1 앱 컨테이너 정리하기_26.2 DB 컨테이너 정리하기_26.3 메일 컨테이너 정리하기_26.4 이 장의 정리27장 컨테이너 가동_27.1 앱, DB, 메일 컨테이너 가동_27.2 브라우저 확인하기28장 도커 컴포즈 이용_28.1 도커 컴포즈 기초_28.2 docker 명령어를 compose.yaml로 이식하기_28.3 도커 컴포즈 기본 조작[7부 운영 시 주의할 점과 트러블슈팅]29장 도커 데스크톱 유료 플랜과 도커 계정_29.1 도커 데스크톱 유료 플랜_29.2 도커 계정30장 프로젝트에서 도커 사용하기_30.1 환경 변수로 compose.yaml 값을 매개변수로 만들기_30.2 .dockerignore로 빌드할 때 사용할 파일 제외하기_30.3 여러 도커 컴포즈 파일 합치기31장 애플 실리콘 맥에서 도커 사용하기_31.1 명령어 집합 구조_31.2 서로 다른 ISA의 도커 실행 환경 공존하기32장 디버깅 방법_32.1 현재 상태 정리하기_32.2 문제 발생 범위 좁히기