navis
docker image 생성 및 container 본문
목차
1. DockerFile 생성
2. 프로젝트 클린 빌드
3. Docker 이미지 생성
4. Docker 컨테이너 실행
5. 실행 확인
1. Dockerfile 생성
먼저, 프로젝트 루트 디렉토리에 Dockerfile을 생성합니다.
Dockerfile은 애플리케이션을 Docker 이미지로 만들기 위한 설정 파일입니다.
Dockerfile 예시
# Step 1: 베이스 이미지 선택 (Java 17 JDK)
FROM openjdk:17-jdk-alpine
# Step 2: 작업 디렉토리 설정
WORKDIR /app
# Step 3: 빌드된 Spring Boot JAR 파일을 복사
COPY ./build/libs/auth-0.0.1-SNAPSHOT.jar /app/myapp.jar
# Step 4: 포트 설정 (Spring Boot 기본 포트 8080)
EXPOSE 8001
# Step 5: JAR 파일 실행 명령어 설정
ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]
이 Dockerfile은 openjdk:17-jdk-alpine 이미지를 기반으로 하며, 프로젝트의 JAR 파일을 컨테이너 내에 복사하고 실행합니다. 여기서 포트 8001을 컨테이너 외부에 노출하여 애플리케이션에 접근할 수 있도록 설정했습니다.
2. 프로젝트 클린 빌드
Docker 이미지를 생성하기 전에 프로젝트를 빌드합니다. Gradle을 사용하여 프로젝트를 클린 빌드하는 명령어는 다음과 같습니다.
./gradlew clean build
이 명령어는 프로젝트의 기존 빌드 결과물을 삭제하고, 새로운 빌드 파일을 생성합니다. 빌드가 완료되면 build/libs/ 디렉토리에 JAR 파일이 생성됩니다.
3. Docker 이미지 생성
이제 Docker 이미지를 생성할 차례입니다. 다음 명령어로 Docker 이미지를 빌드할 수 있습니다.
docker build -t myapp .
위 명령어에서 -t myapp은 이미지의 이름을 myapp으로 설정하겠다는 의미입니다. 명령어 끝의 .은 Dockerfile이 현재 디렉토리에 있다는 뜻입니다.
4. Docker 컨테이너 실행
이미지 생성이 완료되면 Docker 컨테이너를 실행할 수 있습니다. 다음 명령어를 사용하여 컨테이너를 실행합니다.
docker run -d -p 8001:8001 --name myapp-container --network=my-network myapp
위 명령어는 myapp 이미지를 기반으로 myapp-container라는 이름의 컨테이너를 실행하며, 8001 포트를 외부에 노출합니다. 또한, --network=my-network를 통해 컨테이너가 특정 네트워크에 연결되도록 설정할 수 있습니다.
- -d: 백그라운드에서 컨테이너를 실행
- -p 8001:8001: 로컬 머신의 8001 포트와 컨테이너의 8001 포트를 매핑
- --name: 컨테이너에 myapp-container라는 이름을 지정
- --network: 지정된 네트워크에 연결
5. 실행 확인
컨테이너가 정상적으로 실행되었는지 확인하려면 다음 명령어를 사용하여 실행 중인 컨테이너 목록을 확인할 수 있습니다.
docker ps
이 명령어를 통해 myapp-container가 실행 중인 것을 확인할 수 있습니다. 이제 브라우저에서 http://localhost:8001로 접속하여 애플리케이션이 정상적으로 동작하는지 확인하면 됩니다.
'docker' 카테고리의 다른 글
Docker 이미지 재배포 가이드 (0) | 2024.10.24 |
---|---|
Docker를 이용한 Spring Boot 애플리케이션 배포 (0) | 2024.10.24 |
Docker networke 관리 (0) | 2024.07.11 |
Docker 컨테이너 관리 (0) | 2024.07.09 |
Docker 이미지관리 (0) | 2024.07.04 |