⚙️ 개발 환경
- 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
'개발' 카테고리의 다른 글
[스프링부트] FCM (Firebase Cloud Messaging) - bulk + 비동기 전송 (0) | 2024.10.08 |
---|---|
AWS 단일 서버 설정 (Load Balancer, SSL) - 1편 (0) | 2024.10.04 |
[스프링부트] FCM (Firebase Cloud Messaging) - 개별 전송 (1) | 2024.10.02 |
[스프링부트] 마케팅 수신 동의 멤버 조회, @Cache- (0) | 2024.10.02 |
[스프링부트] 필수 약관 - Native Query (0) | 2024.09.25 |