🐳 1. 도커 기본 환경 구축 및 이해
| 단계 | 명령어/개념 | 결과 및 학습 내용 |
|---|
| 도커 설치 | Docker Desktop 설치 | Windows PC에 도커 클라이언트/데몬 환경 구축. WSL2 업데이트 필수. |
| 핵심 개념 | 클라이언트 vs 데몬 | **클라이언트(CLI/GUI)**는 명령을 전달, **데몬(Daemon)**은 컨테이너/이미지를 관리하는 핵심 엔진. 사용자는 클라이언트만 다룸. |
| 이미지 실행 | docker run hello-world | 도커 데몬이 Docker Hub에서 이미지를 받아(Pull) 컨테이너를 실행함. (latest는 최신 버전 태그, sha는 이미지 무결성 해시). |
| 리눅스 환경 진입 | docker run -it ubuntu bash | Windows 위에서 독립된 Ubuntu 리눅스 컨테이너 환경 진입 성공. (root@컨테이너ID:/# 프롬프트). |
| 이미지 저장소 | docker images | 이미지는 Windows 파일 시스템이 아닌, WSL2 내부의 도커 데몬 관리 영역에 저장됨. |
🛠️ 2. Spring Boot + Nginx 통합 배포 준비
| 단계 | 파일/명령어 | 목적 및 변경 사항 |
|---|
| 프로젝트 구조 | docker-compose.yml, default.conf, Dockerfile | 세 파일을 Spring Boot 프로젝트 루트 디렉토리(D:\...\springboot)에 저장 완료. |
| 네트워크 설정 | docker-compose.yml | networks: my_network를 정의하여 iseau와 nginx-proxy 컨테이너가 컨테이너 이름으로 상호 통신 가능하게 설정. (172.168.10.15 IP 설정 오류 수정됨) |
| Nginx 설정 | default.conf | proxy_pass http://iseau:8080을 통해 Nginx가 외부 요청을 iseau 컨테이너의 8080 포트로 전달하도록 설정. |
| Spring Boot 빌드 | mvnw clean install | springboot-0.0.1-SNAPSHOT.jar 파일을 target 폴더에 생성 완료. (Java 17 버전 사용 확인). |
| Dockerfile 작성 | FROM eclipse-temurin:17-jre-focal | openjdk:17-jdk-slim 태그 오류 해결 후, Java 17 기반의 경량 이미지를 사용하여 iseau-image:latest 이미지 빌드 성공. |
🚀 3. 최종 통합 실행 및 HTTPS 문제
| 단계 | 명령어 | 결과 및 다음 조치 |
|---|
| 통합 실행 | docker compose up -d | iseau 컨테이너와 nginx-proxy 컨테이너 실행 성공 메시지 출력. |
| 문제 발생 | docker ps에 nginx-proxy 미노출 | Nginx가 default.conf의 HTTPS 설정을 처리하지 못하고 시작 직후 종료됨. (인증서 파일(fullchain.pem, privkey.pem) 마운트 및 경로 문제). |
| 임시 조치 | default.conf 수정 | HTTPS (443) 설정을 임시로 주석 처리하고 HTTP (80) 프록시만 활성화하여 재실행 대기 중. |
| HTTPS 해결 | mkcert 설치 시작 | HTTPS 재활성화를 위해 로컬 테스트용 인증서 생성 도구인 mkcert 설치 시도 중. (PowerShell 환경에서 명령어 실행 문제 해결됨). |
🌟 다음 단계
현재 Chocolatey 설치 후 mkcert 설치를 시도하는 단계입니다. PowerShell에서 다음 명령어를 실행하여 **mkcert**와 nss 설치를 완료해 주세요.
choco install mkcert
choco install nss
이후 mkcert -install 및 인증서 생성 과정을 진행하여 Nginx의 HTTPS 기능을 복구하게 됩니다.