navis
Docker를 이용한 Redis와 Spring Boot 애플리케이션 네트워크 구성 및 배포 본문
이번 포스트에서는 Docker로 Redis와 Spring Boot 애플리케이션을 실행하고, 사용자 정의 네트워크를 통해 두 컨테이너 간의 통신을 설정하는 방법을 다룹니다. 이를 통해, 분리된 컨테이너들이 서로 연결될 수 있도록 설정할 수 있습니다.
개발환경
- OS: Ubuntu 22 (AWS EC2)
- Docker: Version 27.3.1, Build ce12230
- Java: OpenJDK 17.0.12
목차
- Redis 컨테이너 실행
- Redis 이미지 Pull
- Redis 컨테이너 실행
- Spring Boot 애플리케이션 실행
- 사용자 정의 네트워크 생성
- 컨테이너를 사용자 정의 네트워크에 연결
- Redis 컨테이너 네트워크 연결
- Spring Boot 컨테이너 네트워크 연결
- 결론
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 애플리케이션이 같은 네트워크 상에서 서로 통신할 수 있게 합니다.
- 사용자 정의 네트워크 생성
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 |