Docker를 사용한 Github 프로젝트 배포
발행: (2026년 3월 27일 오후 02:37 GMT+9)
3 분 소요
원문: Dev.to
Source: Dev.to
필요한 도구 설치
sudo apt update && sudo apt upgrade -yGit 설치
sudo apt install git -yNode.js 설치 (IMPORTANT → Node 20+)
# Remove any old Node.js packages
sudo apt remove nodejs npm -y
# Add the NodeSource repository for Node 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# Install Node.js
sudo apt install -y nodejs설치 확인
node -v
npm -vGitHub 프로젝트 복제
git clone https://github.com/yourusername/your-repo.git
cd your-repo
의존성 설치
rm -rf node_modules package-lock.json
npm install프로젝트 빌드 (IMPORTANT)
npm run build
Docker 설치
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable dockerDocker를 사용해 웹사이트 실행
docker run -d -p 80:80 \
-v $(pwd)/dist:/usr/share/nginx/html \
--name mysite \
nginx


컨테이너 확인
docker ps웹사이트 열기
브라우저에서 http://your-ec2-public-ip에 접속합니다.
문제 해결
Docker 설치 충돌
sudo apt remove containerd containerd.io -y sudo apt install docker.io -yDocker 권한 거부
sudo usermod -aG docker ubuntu newgrp docker컨테이너가 실행되지 않음 / 사이트가 열리지 않음
docker ps # 컨테이너 상태 확인 curl localhost # 로컬에서 테스트 docker logs mysite # 로그 확인브라우저에서 웹사이트가 열리지 않음
EC2 보안 그룹이 인바운드 HTTP 트래픽을 허용하도록 설정합니다:
유형 포트 소스 HTTP 80 0.0.0.0/0
최종 배포 명령
sudo docker run -d -p 80:0 \
-v $(pwd)/dist:/usr/share/nginx/html \
--name mysite \
nginx