도커란 무엇인가? 왜 사용해야 할까?
- 도커란 컨테이너 기술, 컨테이너를 생성하고 관리하기 위한 도구이다. SW 개발에서 컨테이너란, 코드 패키지를 의미하며 그 코드를 실행하기 위한 종속성과 도구를 포함하고 있다.
어떤 애플리케이션을 컨테이너로 배포한다고 하는 것은 구성 파일과 런타임, 그리고 실행하는 데 필요한 기타 도구를 포함하고 있다는 뜻이다. 함수형 프로그래밍의 목적과 같이, 항상 같은 동일한 동작과 결과를 제공한다는 장점이 있다.
왜 사용하는가 - 똑같은 개발환경을 갖기 위해, 특정 버전을 컨테이너에 고정할 수 있으므로 코드가 항상 정확한 버전으로 실행되는 것을 보장한다. 프로젝트를 전환할 때 버전을 제거하고 재설치하는 번거로움을 줄일 수 있다.
솔루션 : 가상 머신/ 가상 운영체제 ~ 도커와 컨테이너가 더 나은 선택지가 된다
- 분리된 환경을 조성할 수 있다
- 매번 새로운 가상 머신과 가상 운영체제를 설치해야하므로 리소스 소요가 크고 번거롭다, 중복 복제가 발생한다.
도커와 컨테이너 구조
1. 운영체제
2. OS 빌트인/ 에뮬레이트 컨테이너 지원
3. 도커 엔진
4. 다수의 컨테이너
솔루션 대비 컨테이너의 장점
- 운영체제에 부담이 적고, 디스크 사용량이 낮으며 빠르다
- 공유, 재구축 및 배포가 쉽다
윈도우 설치
Hyper V 및 컨테이너 기능을 활성화시켜야 한다 -> 홈 에디션의 경우 WSL을 사용
https://learn.microsoft.com/en-us/windows/wsl/install
Install WSL
Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available.
learn.microsoft.com
컨테이너 기능 활성화
https://kimsungjin.tistory.com/590
Windows 11 Windows 10 WSL2 설치하는 방법
Windows 11 Windows 10 WSL2 설치하는 방법 이번 포스팅에서는 Windows 11, Windows 10에서 WSL2(Windows Subsystem for Linux : 리눅스용 윈도우 하위 시스템) 설치 방법에 대해 알아보겠습니다. 필자도 Python 공부를 위
kimsungjin.tistory.com
이후 도커 데스크탑 설치, 설치가 완료된 후 cmd 등에서 docker 입력 시 명령어가 출력된다면 설치 완료!
Docker tools
- Docker Destop에서 Docker Engine의 실행을 관리할 수 있다.
- Docker Hub : 다른 사람들과 이미지를 호스팅해 공유할 수 있다.
- Docker Compose : 더 복잡한 컨테이너 또는 다중 컨테이너 프로젝트를 관리할 수 있는 도구
~ 복잡하게 컨테이너화된 애플리케이션을 배포할 때 쿠버티네스를 사용한다
도커 예제 실행하기
1) 도커나 컨테이너 없이 node.js 코드를 실행하기 위해 로컬에서 할 일
- 인터넷에서 언어 다운로드
- npm install을 통해 종속성 추가
2) 도커와 컨테이너를 활용
- 이미지 생성
(1) Dockerfile 생성 : 컨테이너 설정 방법 정리 ~ 포트를 노출시킨다 : 포트에서 수신하는 요청에 응답하는 웹 서버를 생성
(2) 터미널에서 docker build . 을 통해 도커파일에 따라 이미지를 빌드한다.
(3) 윈도우에서는 이미지의 ID가 출력되고 docker run ID, -p 명령어를 통해 포트를 설정하고 애플리케이션에 연결할 수 있다. 터미널이 멈추면 실행되고 있다는 뜻
트러블 슈팅 : 포트가 실행 중이지 않은 데 엑세스할 수 없는 경우
Completely solve the problem of docker containers running on Windows 10 due to port binding
Using docker as a development backend environment is really a cool thing, but an inexplicable problem on windows 10 is very maddening.
medium.com
-> TCP 동적 포트 범위를 재설정하기 : 해결!
실행 중인 컨테이너 보기 : docker ps
컨테이너 중지 : docker stop NAME
강의 아웃라인
1. 기초
1) 이미지 & 컨테이너 : 이미지 생성방법, 기존 이미지 사용방법, 컨테이너 구성방법
2) 데이터 & 볼륨 : 컨테이너에서 데이터를 관리하는 방법, 데이터 유지방법
3) 다중 컨테이너 & 네트워킹 : 컨테이너 간 통신
2. 응용
1) 다중 컨테이너 프로젝트
2) 도커 컴포즈
3) 유틸리티 컨테이너
4) 다중 컨테이너화 된 애플리케이션 배포 + AWS
3. 쿠버네티스
1) 쿠버네티스 기초
2) 쿠버네티스 : 데이터 & 볼륨
3) 쿠버네티스 : 네트워킹
4) 쿠버네티스 클러스터 배포하기
'개발공부 > Docker & Kubernetes 실전 가이드 강의' 카테고리의 다른 글
Udemy : Docker & Kubernetes 실전 가이드 (6) (0) | 2023.04.11 |
---|---|
Udemy : Docker & Kubernetes 실전 가이드 (5) (0) | 2023.04.10 |
Udemy : Docker & Kubernetes 실전 가이드 (4) (0) | 2023.04.10 |
Udemy : Docker & Kubernetes 실전 가이드 (3) (0) | 2023.04.08 |
Udemy : Docker & Kubernetes 실전 가이드 (2) (0) | 2023.04.08 |