회사에서 시간날때 쫌쫌따리 들었던
도커 강의를 완강했습니다!
사실 회사에서 듣는거라
강사님의 목소리를 들은적이 없습니다...
스크립트와 피피티만 보면서 수강했거든요ㅎㅎ...
이런식으루...
하지만 이해하는데 전혀 문제 없었고
오히려 듣기 중심의 학습이 아니라
읽기 중심의 학습이 되니까
더 이해가 잘 됐달까요?
암튼 도커 강의를 듣게된 이유는
전회사 동료분이 이직하신 회사에서
도커를 많이 쓴다는 얘기를 듣고
'오 도커 함 공부해볼까?' 싶어서 듣게되었습니다.
딱히 특별한 이유는 없었죠..ㅎ
도커에 대해서는 대학생때 한번 배웠으나
영어강의였어서 잘 이해를 못한채로 학기가 끝났거든요
그래서 아예 백지라고 생각하시면 됩니다.
도커를 써야하는 이유
저는 이 부분이 이 강의에서 제일 흥미로웠던 부분이였어요.
많은 사람들이 사용하는 서비스는 많은 서버를 필요로하고,
이 많은 서버들을 안전하게 실행하기 위해 컨테이너 가상화 기술을 사용한다.
도커는 컨테이너 가상화 기술을 편리하게 사용할 수 있도록 도와주는 플랫폼이다.
컨테이너 가상화 기술을 사용하여 호스트OS 위에 컨테이너라는 격리된 공간을 만들고, 애플리케이션을 실행할 수 있다.
컨테이너에서 실행된 애플리케이션은 다른 컨테이너에서 실행된 애플리케이션에 영향을 주지 못해
각 애플리케이션은 안전하게 실행된다.
컨테이너가 실행되기 위해서는 이미지가 필요하다.
이미지는 애플리케이션이 실행되기 위해 필요한 운영체제와 의존요소, 실행시킬 프로그램 등을 압축시킨 파일이다.
이미지를 사용해 컨테이너를 생성하여 내가 원하는 환경을 항상 똑같이 만들어낼 수 있다.
도커를 사용하면 개발에 필요한 환경(DB, CI/CD, ...)등을 손쉽게 구성할 수 있고
내가 만든 프로그램을 간단하게 배포할 수 있다.
저는 사이드프로젝트를 하면서 가장 귀찮았던 부분이
로컬환경에 DBMS를 설치하는거였어요.
AWS RDS 같은 원격디비를 생성하면 해결되는 문제지만
RDS는 돈이 들잖아요...?
그래서 가급적 로컬디비를 사용하려고 하는데,
로컬디비를 설치하는게 그렇게 귀찮더라구요...
그런데 도커를 사용하면 명령어 2줄로
로컬디비환경을 구성할 수 있게 되어서
귀찮음을 좀 덜었습니다ㅎㅎㅎ
강의에서 학습한 내용
강의환경 준비 | - 윈도우는 Git, Git Bash Winpty, Docker Desktop, VSCode 설치 - MacOS는 iTerm2, Git, Docker Desktop, VSCode 설치 |
가상화 기술 | - 서버 운영 방법론(베어메탈, 하이퍼바이저, 컨테이너) - LXC(LinuX Containers) - 도커 아키텍처 |
이미지와 컨테이너 | - 이미지 개념 - 이미지와 컨테이너의 관계 - 이미지의 메타데이터(Metadata) - 컨테이너의 라이프사이클(Lifecycle) |
이미지 레지스트리 | - 이미지 레지스트리 개념 - 이미지 레지스트리 기능 - 이미지 이름 구성 - 도커허브 로그인 |
이미지 빌드 | - 이미지와 레이어(Layer) - Layering, Caching 개념 - 이미지를 만드는 방식 - IaC(Infrastructure as Code) - 도커파일 지시어 - 빌드 컨텍스트(Build Context) - 멀티 스테이지 빌드(Multi-Stage Build) |
컨테이너 애플리케이션 구성 | - 모놀리식 아키텍쳐 vs MSA 아키텍쳐 - Leafy 애플리케이션 구성 |
도커 네트워크 | - 가상 네트워크 기술 - 포트포워딩 - 도커 네트워크 드라이버 종류 |
스토리지와 볼륨 | - 컨테이너의 상태(State) - 서버방법론 - 컨테이너 stateless 특징 - 도커 볼륨 |
도커를 실무에 적용하기 | - 이미지 레이어 최적화 - 3Tier 아키텍처의 구성 - 백엔드를 오픈하지 않고 3Tier 아키텍처 구성 - 동적 서버 구성 - 이중화DB 구성 - 컨테이너 리소스 제한 |
도커 컴포즈 | - 도커 컴포즈 개념 - 도커 컴포즈 문법 |
컨테이너 빌드 파이프라인 자동화 | - GitHub Actions 개념 - GitHub Actions 문법 - GitHub Actions를 활용한 이미지 빌드 자동화 파이프라인 구성 |
강의 후기
대학생때는 막연하게 느껴졌던 도커를
실무경험을 조금 쌓은 후 다시 접하니
'도커 너 되게 유용한 애였구나?'라는 생각이 들더라구요.
도커를 다시 공부하기로 결심했을 때
이 강의를 선택한건
굉장히 잘한 일 같습니다.
사이드프로젝트에 도커를 적극적으로 사용하고
열심히 연습해서 나중에 실무에서 사용하게 될 때
멋지게 사용해보겠습니다.
도커 생명주기 (0) | 2025.03.11 |
---|---|
도커 명령어 정리 (0) | 2025.03.11 |