본문 바로가기

개발

AWS 단일 서버 설정 (Docker) - 2편

⚙️ 개발 환경

  • Mac OS
  • AWS EC2 → Ubuntu
  • Spring boot
  • Java 17
  • Gradle

 

 

 

jar파일 생성

 

 

 

 

로컬에 Docker 설치

Mac OS는 Homebrew를 이용해 설치

brew install --cask docker

 

도커 버전 확인

yeonbin@yeonbinui-MacBookPro common-module % docker --version
Docker version 27.2.0, build 3ab4256

 

 

Docker 레포지토리 생성

 

Docker 로그인

 

yeonbin@yeonbinui-MacBookPro common-module % docker login

USING WEB BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'

Your one-time device confirmation code is: LJSS-SNPS
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate

Waiting for authentication in the browser…
Login Succeeded

 

 

Docker Desktop 실행

 

 

Dockerfile 작성

# 1단계: 빌드 단계
FROM gradle:7.6.0-jdk17 AS build
WORKDIR /app

COPY build.gradle settings.gradle ./
RUN gradle build --no-daemon || return 0

COPY . .
RUN gradle bootJar --no-daemon

# 2단계: 실행 단계
FROM eclipse-temurin:17-jdk-alpine
WORKDIR /app
COPY --from=build /app/build/libs/*.jar app.jar

# 9000번 포트 개방
EXPOSE 9000

# 애플리케이션 실행
ENTRYPOINT ["java", "-jar", "app.jar", "--server.port=9000"]

 

 

Docker 이미지 파일 build

docker build -t yb080707/i-repo:test .

 

 

Docker 이미지 build 성공

 

 

Docker 이미지 push

docker push yb080707/i-repo:test

 

 

Docker 이미지 push 성공

 

 

내 EC2 서버에 docker 설치하기

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

 

 

Docker 상태 확인

docker ps

 

오류?ㅠㅠ

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

 

Docker에 접근할 권한이 없다. sudo로 해결되지만 접근권한 부여하는게 편할 듯.

sudo usermod -aG docker ubuntu // 권한 부여
newgrp docker // docker 재시작
ubuntu@ip-172-31-10-16:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

오우 굿

 

도커 로그인 후 이미지 pull

docker pull yb080707/i-repo:test

 

이미지 pull 성공 확인 

ubuntu@ip-172-31-10-16:~$ docker images
REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
yb080707/i-repo   test      f9893585798b   22 minutes ago   453MB

 

 

 

Docker 컨테이너 실행

밑에 뜨는 알 수 없는 문자는 컨테이너ID를 의미

ubuntu@ip-172-31-10-16:~$ docker run -d -p 9000:9000 yb080707/i-repo:test
0c78bfcce846c0943fd5c808e3d7b33a680c76e7281da29cb64cacc4487a225a

 

 

Docker 실행 상태 확인

ubuntu@ip-172-31-10-16:~$ docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                                       NAMES
0c78bfcce846   yb080707/i-repo:test   "java -jar app.jar -…"   37 seconds ago   Up 36 seconds   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   unruffled_pascal