SW캡스톤디자인을 수강하면서 프로젝트를 수행할 때 도커를 이용하여 많은 개발 능률이 향상되었고 DevOps를 경험할 수 있었다. 또한 교수님께서도 도커와 쿠버네티스를 설명하시면서 이에 대한 중요함을 많이 강조하셨다. 아직까지는 프로젝트 개발과 운영에서 선택사항이지만 마이크로 아키텍처와 클라우드 서비스를 통한 서비스 배포 패러다임이 주류를 이루고 발전해가면서 도커라는 오픈소스 리눅스 컨테이너 플랫폼이 DevOps에서 절대로 빠지지 않는 존재가 될 것이라고 생각한다. 하지만 도커에 대한 우리나라말로된 동영상 강의가 별로 존재하지 않아 오픈소스 소프트웨어 커뮤니티에 기여하기 위해 도커에 대한 기본 개념 및 실습을 동영상으로 제작하게 되었다.
SW캡스톤디자인을 수강하면서 프로젝트를 수행할 때 도커를 이용하여 많은 개발 능률이 향상되었고 DevOps를 경험할 수 있었다. 또한 교수님께서도 도커와 쿠버네티스를 설명하시면서 이에 대한 중요함을 많이 강조하셨다. 아직까지는 프로젝트 개발과 운영에서 선택사항이지만 마이크로 아키텍처와 클라우드 서비스를 통한 서비스 배포 패러다임이 주류를 이루고 발전해가면서 도커라는 오픈소스 리눅스 컨테이너 플랫폼이 DevOps에서 절대로 빠지지 않는 존재가 될 것이라고 생각한다. 하지만 도커에 대한 우리나라말로된 동영상 강의가 별로 존재하지 않아 오픈소스 소프트웨어 커뮤니티에 기여하기 위해 도커에 대한 기본 개념 및 실습을 동영상 강의로 제작하게 되었다.
### 강의 구성
과제는 "도커 초보편" 이라는 이름의 동영상으로 24분 길이이다. 두 파트로 나눠져 있는데 첫번째 파트는 도커 개념편으로 도커의 개념과 장점, 아키텍처, 주요 구성 요소 및 용어들을 정리한다. 이후 주로 사용되는 도커 명령어들을 실제 터미널 결과와 함께 알아보고 두번째 파트인 실습으로 넘어간다. 실습에서는 스프링부트 애플리케이션을 도커 이미지로 빌드할때 필요한 Dockerfile 설정을 배우고 앞에서 배웠던 도커 명령어들을 응용하여 작성한 Dockerfile을 이용해 도커 이미지를 빌드해본다. 또한 빌드한 이미지를 바탕으로 컨테이너를 생성하고 실행하여 스프링부트 애플리케이션을 구동해본다. 마지막으로 Docker Hub 개의 리포지토리에 빌드한 이미지를 푸시하는 실습을 수행하여 도커 이미지를 원격 레지스트리에서 가져오는 법을 알아본다.
### 강의 목표
- 도커(Docker)의 기본 개념과 장점, 아키텍처를 이해할 수 있다.
- 도커에서 사용되는 주요 용어들을 이해할 수 있다.
- 도커의 주요 명령어들을 사용할 수 있다.
- 도커를 이용하여 스프링부트 애플리케이션의 이미지를 빌드하고 컨테이너를 실행할 수 있다.
## 강의를 제작하면서 공부한 것들 정리
### 도커
Docker는 개발자나 시스템 관리자가 애플리케이션 개발 배포 실행을 컨테이너를 통해 할 수 있도록 하는 오픈 플랫폼입니다. 위키피디아를 인용하자면 다음과 같습니다.
...
...
@@ -42,7 +52,7 @@ Docker는 개발자나 시스템 관리자가 애플리케이션 개발 배포
도커 아키텍처는 그림과 같이 클라이언트, 도커 호스트 그리고 레지스트리로 구성됩니다. 클라이언트에선 사용자나 애플리케이션으로 부터 명령어를 받고 도커 호스트에 보냅니다. 이를 처리한 결과를 클라이언트에서 다시 보여줄 수 있습니다. 도커 호스트는 도커 서버로서 필요한 이미지를 빌드, 다운로드하고 이들 이미지로 컨테이너를 실행하고 관리합니다. 이때 도커 호스트에 저장된 이미지가 없다면 도커 레지스트리 라는 곳에서 빌드된 이미지를 `pull`합니다. 이때 레지스트리는 **Docker Hub**와 같은 도커에서 공식적으로 관리하는 이미지 저장소가 될 수 있고, private한 레지스트리를 만들 수 도 있습니다.
### Docker CLI Command
### Docker CLI Command(도커 명령어)
-`docker version`은 도커 클라이언트와 도커 서버의 대략적인 정보를 알려줍니다.