Docker 란
1. 도커란?
도커는 컨테이너를 관리하고 생성하기 위한 도구이다.
컨테이너를 사용하는 이유 : 컨테이너란 소프트웨어 개발에서 컨테이너는 표준화된 소프트웨어 유닛이다. 이는 기본적으로 코드 패키지이며 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어 있다.(컨테이너에는 애플리케이션 소스 코드 뿐만 아니라 코드를 실행하는데 필요한 기타 도구가 있을 것이다.)
로컬 환경이 개발자마다 모두 같지 않기 때문에 프로젝트를 실행할 때마다 프로젝트에 맞춰 버전 관리를 해줘야한다. 하지만 컨테이너를 사용한다면 컨테이너 안에 실행에 필요한 도구가 모두 포함되어 있기 때문에 개발자는 프로젝트를 실행하는 개발환경을 일일이 맞출 필요가 없다. (버전 관리가 편하다)
도커를 사용한다면 도커가 실행되는 모든 곳에서 실행 환경을 가져올 수 있으며 이로써 동일한 환경에서 정확히 동일한 애플리케이션을 실행할 수 있다. 모든 것이 컨테이너에 있기 때문에 애플리케이션을 실행하려는 위치에 추가 도구를 설치하는 것에 대해 더이상 걱정할 필요가 없다. 이것이 도커이다. 도커는 이러한 컨테이너를 구축하기 위한 도구일 뿐이다. 또한 도커를 모든 최신 운영 체제에 설치하여 작업할 수 있기 때문에 관리 프로세스를 단순화하기 쉽다.
2. 도커 관리

Docker Engine : 도커를 기반으로 컨테이너를 실행하는데 필요한 도구이다. Linux를 호스팅하는 가상 머신에 설정되어있다.
가상머신이 필요한 이유 : 운영체제가 기본적으로 도커를 지원하지 않기 때문에 가상 머신에서 컨테이너가 실행된다.

Docker Desktop : 리눅스가 아닌 운영 체제에서 도커를 사용하기 위한 도구. 리눅스의 경우 기본적으로 Docker Engine을 지원하기 때문에 리눅스에 직접 Docker Engine을 설치할 수 있다. 하지만 windows, max의 경우 Docker Engine을 바로 접근할 수 없어 Docker Desktop을 통해 Docker Engine에 접근한다.
Docker Hub : 클라우드, 웹에서 이미지를 호스팅하여 다른 시스템과 사람들에게 쉽게 공유할 수 있게 해주는 서비스.
Docker Compose : 복작한 컨테이너 또는 다중 컨테이너 프로젝트를 더 쉽게 관리해주는 서비스.
3. 도커의 Config 파일 사용
Config 파일을 사용하여 컨테이너를 구성하고 전체적인 구성을 설명할 수 있다. 또한 Config 파일을 다른 사람들과 공유하여 다른 사람들이 컨테이너를 다시 만들 수 있도록 하거나 컨테이너를 이미지라 불리우는 것에 빌드할 수 있다. 이후 그 이미지를 다른 사람들과 공유하여 모든 사람이 동일한 컨테이너를 시작할 수 있다. 이처럼 Config 파일과 이미지를 사용할 수 있기 때문에 공유, 재구축 및 배포하는 것이 매우 쉬워진다.
4. 도커 설치
1. https://www.docker.com/ 에서 Docker Desktop 다운로드
2. 관리자 권한으로 PowerShell 실행
3. Enable Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
4. Enable Containers Feature
Enable-WindowsOptionalFeature -Online -FeatureName containers –All
5. 다운로드 받은 Docker Desktop Installer.exe 실행
windows pro 이외 버전 추가 설정 필요 : 이전 버전 WSL의 수동 설치 단계 | Microsoft Learn