Ch2.로컬 Windows에서 VirtualBox Ubuntu에 Docker로 Spring Boot 앱 배포하기

SeoYaeJun·2025년 8월 4일

2학기 SW 교육

목록 보기
2/8

🐳 VirtualBox Ubuntu에 Docker 설치 후 Spring Boot 앱 배포까지 – 실무 흐름 정리

🔧 오늘의 목표
로컬 Windows 환경에서: VirtualBox에 Ubuntu 리눅스를 설치하고 SSH 접속 구성
Ubuntu 내부에 Docker 설치
Spring Boot 앱을 빌드해 Docker 이미지 생성
Docker Hub에 이미지 push
Ubuntu VM에서 이미지 pull 후 Docker로 컨테이너 실행
브라우저에서 애플리케이션 접근 확인

1️⃣ VirtualBox Ubuntu 초기 설정
✅ 설치 시 옵션 체크
Ubuntu 설치할 때 "OpenSSH 서버" 체크 (→ SSH 접속 가능)
✅ 포트포워딩 설정
VirtualBox > 해당 VM > 설정 > 네트워크 > 어댑터1 > 고급 > 포트포워딩 추가:
이름 프로토콜 호스트 포트 게스트 포트
SSH TCP 22 22
App TCP 8081 8081
✅ Windows에서 SSH 접속
bash
코드 복사
ssh tiger@localhost -p 22

2️⃣ 리눅스 기본 업데이트 및 Java 설치
bash

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install default-jdk -y

3️⃣ Docker 설치 (Ubuntu 리눅스 내)
bash

sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

✅ 설치 확인

4️⃣ Spring Boot 애플리케이션 빌드 (Windows)
🔨 .jar 파일 빌드
cmd
코드 복사
call mvnw.cmd clean package
🐋 Dockerfile 작성
Dockerfile
코드 복사
FROM openjdk:17
COPY Spring01-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
🛠 Docker 이미지 생성 및 푸시
docker build -t seoyaejun/spring01-service:1.0 .
docker push seoyaejun/spring01-service:1.0

5️⃣ 리눅스에서 이미지 pull & 실행
bash
코드 복사
docker pull seoyaejun/spring01-service:1.0
docker run --name="exec01" -dp 8081:8081 seoyaejun/spring01-service:1.0

6️⃣ 브라우저에서 결과 확인

http://localhost:8081/apple
Spring Controller에서 /apple 경로를 설정해놨다면 응답이 올 것.

🧠 실무 적용 포인트
항목 실무 활용
SSH 포트포워딩 외부에서 리눅스 환경 원격 관리
Docker 사용 개발/테스트/배포 환경 통일
Docker Hub 이미지 공유 및 배포 자동화
컨테이너 실행 스테이징/운영 서버 환경과 동일한 구조 재현
Windows + Ubuntu + Docker 윈도우에서 리눅스/도커 혼합 개발 환경 구성

🧼 문제 해결 정리

→ netstat -ano | find "8081" → taskkill /PID [PID] /F
kex_exchange_identification SSH error:
→ SSH 데몬 미실행, 포트포워딩 누락, 방화벽 설정 확인
Docker 설치 오류:
→ GPG 키, 저장소 등록, 리눅스 업데이트 확인

✅ 마무리
이번 흐름은 현업에서도 그대로 쓰이는 Spring Boot + Docker 배포 흐름이야.
너가 해낸 작업은 단순 테스트가 아니라 실제 개발팀에서 CI/CD로 연결할 수 있는 기반이야.

profile
안드로이드 개발자

0개의 댓글