navis

Docker를 이용한 Redis와 Spring Boot 애플리케이션 네트워크 구성 및 배포 본문

docker

Docker를 이용한 Redis와 Spring Boot 애플리케이션 네트워크 구성 및 배포

menstua 2024. 10. 25. 08:31
728x90

이번 포스트에서는 Docker로 Redis와 Spring Boot 애플리케이션을 실행하고, 사용자 정의 네트워크를 통해 두 컨테이너 간의 통신을 설정하는 방법을 다룹니다. 이를 통해, 분리된 컨테이너들이 서로 연결될 수 있도록 설정할 수 있습니다.

 

개발환경

  • OS: Ubuntu 22 (AWS EC2)
  • Docker: Version 27.3.1, Build ce12230
  • Java: OpenJDK 17.0.12

목차

  1. Redis 컨테이너 실행
    • Redis 이미지 Pull
    • Redis 컨테이너 실행
  2. Spring Boot 애플리케이션 실행
  3. 사용자 정의 네트워크 생성
  4. 컨테이너를 사용자 정의 네트워크에 연결
    • Redis 컨테이너 네트워크 연결
    • Spring Boot 컨테이너 네트워크 연결
  5. 결론

1. Redis 컨테이너 실행

먼저, Redis 이미지를 Docker Hub에서 내려받고 실행합니다.

 

1. Redis 이미지 Pull

docker pull redis

 

2.Redis 컨테이너 실행

docker run -d --name redis-container -p 6379:6379 redis

이 명령어는 Redis 컨테이너를 백그라운드에서 실행하며, 로컬 포트 6379를 컨테이너의 6379 포트에 매핑합니다.


2. Spring Boot 애플리케이션 실행

1) JAR 파일로 직접 실행하기

Spring Boot 애플리케이션은 auth-0.0.1-SNAPSHOT.jar 파일을 사용하여 실행합니다. nohup 명령어를 사용해 서버를 백그라운드에서 실행하고 로그를 app.log 파일에 기록하도록 설정합니다.

nohup java -jar auth-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

이 명령어는 서버를 백그라운드에서 실행하며, 서버 로그는 app.log 파일에 기록됩니다.

 

2) Docker 이미지로 실행하기

Docker 이미지를 빌드하여 Spring Boot 애플리케이션을 컨테이너로 실행할 수 있습니다. Dockerfile을 사용하여 애플리케이션을 컨테이너화하고 실행하는 방법입니다.

docker run -d --name portfolio-container -p 8001:8001 portfolio

이 명령어는 Docker 이미지를 사용해 컨테이너를 백그라운드에서 실행하며, 로컬 포트 8001을 컨테이너의 8001 포트에 매핑합니다.


3. 사용자 정의 네트워크 생성

Docker에서는 컨테이너 간의 통신을 위해 사용자 정의 네트워크를 생성할 수 있습니다. 이 네트워크를 생성하고 각 컨테이너를 연결하여, Redis와 Spring Boot 애플리케이션이 같은 네트워크 상에서 서로 통신할 수 있게 합니다.

  1. 사용자 정의 네트워크 생성
docker network create my_network

이 명령어는 my_network라는 이름의 새로운 Docker 네트워크를 생성합니다.


4. 컨테이너를 사용자 정의 네트워크에 연결

각 컨테이너를 my_network에 연결하여 서로 통신할 수 있도록 설정합니다.

 

1. Redis 컨테이너 네트워크 연결

docker network connect my_network redis-container

 

2. Spring Boot 컨테이너 네트워크 연결

docker network connect my_network portfolio

이 명령어들은 redis-container와 portfolio라는 이름의 컨테이너를 my_network에 연결하여, 두 컨테이너가 동일한 네트워크에서 서로 통신할 수 있게 만듭니다.


5. 결론

이번 포스트에서는 Docker로 Redis와 Spring Boot 애플리케이션을 배포하고, 사용자 정의 네트워크를 통해 컨테이너 간의 통신을 설정하는 방법을 다뤘습니다.

  • Redis 이미지를 다운로드하고 컨테이너를 실행
  • Spring Boot 애플리케이션을 nohup을 통해 백그라운드 실행
  • Docker 사용자 정의 네트워크 생성
  • Redis와 Spring Boot 컨테이너를 사용자 정의 네트워크에 연결

이 작업을 통해 서로 다른 컨테이너들이 네트워크 상에서 원활히 통신할 수 있도록 구성할 수 있습니다. Redis와 Spring Boot 애플리케이션의 연동이 필요한 경우 이 방법을 활용하면 효율적인 네트워크 구성을 만들 수 있습니다.

 

'docker' 카테고리의 다른 글

Docker 이미지 재배포 가이드  (0) 2024.10.24
Docker를 이용한 Spring Boot 애플리케이션 배포  (0) 2024.10.24
docker image 생성 및 container  (0) 2024.10.18
Docker networke 관리  (0) 2024.07.11
Docker 컨테이너 관리  (0) 2024.07.09