• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

프론트 엔드 컨테이너가 존재하는 docker안에 백엔드 컨테이너 생성 조언 부탁드립니다.

하핳 225

0

5

너무 어려워서 머리가 빠질거 같네요ㅠㅠ 도와주세요..

회사에서 spring boot, 내장 톰캣으로 도커 컨테이너를 올릴려고 합니다.

해당 서버에는 기존에 도커가 설치되어 있고 도커에서 next+nginx 운영중입니다. 프론트 서비스입니다.

 

nginx가 이미 80포트를 이용 중이고 새로 올리는 것도 80을 이용하고 싶어서

이미 올려진 nginx에 백엔드 서비스를 추가해서 도메인에 따라 포트를 분기 처리했습니다.

 

근데 docker-compose 파일에 프론트 서비스(next+nginx)들은 묶여있었습니다.

백엔드 서비스의 배포로 인하여 영향이 있으면 안돼서 docker-compose 파일을 분리했습니다.

 

도커 네트워크가 브릿지라서 파일 분리가 안돼서 host 네트워크로 수정했습니다.

이렇게 하니까 기존 프론트 서비스(next+nginx)가 사용중이던 433포트가 바인딩이 안됩니다....

 

너무 복잡하네요..

host 네트워크로 별짓을 다해도 포트 바인딩이 안됩니다.

그래서 다시 브릿지 네트워크로 변경하고 배포 방식을 변경해야할거 같은데 지금 이 상황을 해결할 방법이 없을까요??

 

이번에 도커를 처음 다루고 선임이 없어서 너무 힘드네요ㅠㅠㅠ

 

 

신고공유스크랩
5
profile image 1등
너굴맨봇 2024.03.20. 14:19
안녕하세요, 하핳님.😊
 

좋은답변을 받기위해서는 좋은 질문이 필요합니다.

유의할점⚠️

  • 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
  • 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
  • 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
    • (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)

질문방법🙏

자신의 상황을 최대한 자세히 설명해주세요.

상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다. 

ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.

*가능하면 최신버전 OS/SW를 이용해주세요

 

답변에대한 피드백을 주세요.

정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.

이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.

2등
deVbug 2024.03.20. 15:33
두개의 각 서비스에서 웹(80, 443)만 열면 되고, 각각 도메인이 따로 나와있다면, 저라면 간단하게 reverse proxy로 해결볼 거 같네요.

앞 단에 네트워크 하나 새로 만들고 reverse proxy 서버를 80, 443 점유시키면서 이 네트워크로 올리고 나머지 서비스들도 다 같은 네트워크로 올려줍니다.
대신, 기존의 각 두 서비스의 80, 443을 서로 다 다른 적당한 포트로 대충 바꿔준 뒤에 reverse proxy에서 도메인 별로 해당 서비스로 갈 수 있도록 설정해주면 될거 같네요.

단, 이 방법은 웹 서비스가 아닌 다른 TCP/UDP 통신을 쓰는 포트가 겹치는게 있으면 곤란합니다.
뭐.. 매번 reverse proxy는 막상 도메인 주소가 없어서 못 쓰는 경우가 많은데, 이미 도메인이 따로 있다면야.. ㅎㅎ
3등
neidn 2024.03.20. 17:00
nginx가 이미 있다고 하니까 next+nginx 도커 이미지를 수정해서 백엔드를 가상호스트로 분리하는 방법이 있겠네요
아니면 위에 deVbug님이 말씀하는것처럼 next와 nginx를 분리해서 리버스 프록시로 하는 방법도 있죠 이 방법은 nginx에만 80,443 을 외부공개 해주면 되서 간편해집니다
콜라 2024.03.20. 17:30

리버스 프록시라는 개념이 있습니다.

한번 알아보셔요.

만약 리버스 프록시를 구성하게 되면 리버스 프록시 도커만 80/443 포트로 오픈하고,
지금 nginx랑 tomcat은 포트를 열지 않게 됩니다.

그리고 리버스 프록시 도커랑 nginx, tomcat을 같은 docker 네트워크에 두세요.

리버스프록시로 http 헤더의 host 값에 따라 nginx에 연결되게할지, tomcat에 연결되게 할지 정할수 있습니다

 

 

 

이와 같은 방법으로 tomcat 도커는 port를 열지 마세요.

nginx에서는 (tomcat 컨테이너이름):80으로 접속할수 있습니다.

KelvinKang 2024.03.21. 14:28
포트 구성과 도메인에 대해서 다시한번 공부 하시는게 좋겠네요.

모든 도메인의 포트는 단 1개만 쓸수 있습니다.

1대의 서버에서 ip로 접근하는 포트는 단1개만 쓸수 있습니다.

하지만, 1대의 서버는 여러개의 도메인을 가질수 있습니다.

따라서, ip로 접근하는 경우 포트는 중복은 안되지만, 여러개의 도메인을 보유한 서버는 해당 도메인을 80 포트를 가질수 있습니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 제목 글쓴이 날짜 조회 추천
Ubuntu 24.04 LTS Desktop 원격 접속 설정하기(SSH,RDP) 3 달소 1일 전18:33 91 +1
Ubuntu 24.04 LTS Server 설치해보기 달소 1일 전17:40 173 +2
Ubuntu 24 가 정식출시되었습니다~~ 8 달소 1일 전10:37 279 +2
3667
normal
kmw_ 1일 전21:52 359 0
3666
normal
ljr10 1일 전21:18 104 0
3665
image
달소 1일 전17:40 173 +2
3664
image
달소 1일 전10:37 279 +2
3663
normal
감자칩 2일 전18:56 206 0
3662
image
달소 2일 전08:21 175 +1
3661
image
달소 2일 전07:46 304 +1
3660
image
달소 2일 전07:24 288 0
3659
normal
서버구축하자 3일 전13:09 429 0
3658
image
미스터빈 4일 전20:09 234 0
3657
image
초보나스 4일 전08:05 270 +1
3656
normal
웹서버구축관심 6일 전02:22 337 0
3655
normal
달소 6일 전23:39 228 +2
3654
normal
게르노 24.04.21.03:11 204 0
3653
image
감자칩 24.04.20.20:04 298 0
3652
normal
ljr10 24.04.20.19:45 213 0
3651
image
TANG 24.04.20.11:33 249 0
3650
normal
감자칩 24.04.19.18:55 157 0
3649
normal
숲형 24.04.19.11:21 279 0
3648
image
kmw_ 24.04.19.09:37 207 +1