- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- container
- 리뷰
- EntityTransaction
- SPRING JWT
- 팀네이버 공채
- SpringBoot
- Kotlin
- JWT
- network
- 만들면서 배우는 클린 아키텍처
- 브랜치전략
- infra
- jenkins
- 캐싱전략
- 프로젝트
- 팀네이버
- LazyInitialization
- docker
- 후기
- 책
- spring
- chrome80
- Java
- Project
- Spring Security
- 스프링
- 젠킨스
- redis
- websocket
- JPA
PPAK
[Docker] Docker Container(Spring, Redis) 간 네트워크 연결 본문
프로젝트에서 본격적으로 Redis 를 사용하기 위해서는 로컬에서 실행중인 Spring Container 와 Redis Container 간의 연결이 필요했습니다.
일반적으로 OS 위에서 실행하는 JVM 과 Redis 는 host network 를 사용하여 손쉽게 연결할 수 있지만 Docker 는 컨테이너 간 네트워크 역시 격리시켜놓았기 때문에 같은 네트워크를 사용하고자 한다면 컨테이너를 잇는 네트워크 브릿지를 생성하고 이어주어야 합니다.
$ docker network ls
위 명령어를 통해 docker 에서 기본적으로 생성해놓은 네트워크를 확인해보면 host 와 bridge 가 존재하는 것을 확인할 수 있습니다.
$ docker network inspect bridge
별도의 연결 네트워크를 명시하지않은 모든 컨테이너는 이 default bridge 에 연결이 되고 만약 현재 실행중인 컨테이너가 존재한다면, 위 명령어를 통해서 해당 bridge network 에 연결되어 있음을 확인할 수 있습니다.
이러한 Docker bridge 는 실제 하드웨어 브릿지와 같이 둘 이상의 LAN 을 하나의 네트워크 대역 아래 두는 것을 의미합니다.
따라서 저희가 목표로 하는 서로 다른 컨테이너를 하나의 네트워크 대역 아래 두고 싶다면 별도로 bridge 를 생성하고 컨테이너를 이어주면 될 것 입니다.
브릿지 생성
$ docker network create --driver bridge mybridge
$ docker network inspect mybridge
위 명령어를 통해 브릿지를 생성하고 기본 게이트웨이가 만들어진 것을 확인합니다.
$ docker run -d --name myredis --net mybridge redis
$ docker run -p 8080:8080 -d --net mybridge --name=boot-server boot-server:1.0
--net [네트워크 이름] 옵션을 통해 서로 다른 컨테이너를 하나의 네트워크 대역에 위치 시킵니다.
Docker 는 여기서 굉장히 유용한 기능을 제공하는데 위와 같이 하나의 네트워크 대역에 위치시키기만 하면, 컨테이너 이름 (여기서는 myredis, boot-server) 을 호스트 이름으로 사용할 수 있습니다.
-> application.yml 에서 host: myredis 로 사용가능하다는 것을 의미
잘못된 정보가 있다면 댓글로 알려주시면 감사하겠습니다!!
'프로젝트' 카테고리의 다른 글
[프로젝트 리뷰] 주어진 시간은 단 5일 (feat.핀플레인) (1) | 2022.10.08 |
---|---|
[프로젝트 리뷰] 공개SW 개발자 대회 참여를 하면서 (feat. 이웃사이) (0) | 2022.09.10 |
[Spring/WebSocket] WebSocket 도입과 STOMP subscribe, send 인가 구현 (0) | 2022.08.31 |
[Server] Application Architecture(인증/인가, Header 값 분리, CORS 허용) (0) | 2022.08.17 |
[Git] 팀 프로젝트 Git 브랜치 전략 (기능 추가) (0) | 2022.07.20 |