컨테이너간 통신 질문
좋은 강의를 통해 학습하고
실제 프로젝트를 도커 이미지화 해보려고 노력하고 있습니다
mysql 이미지를 통해 컨테이너를 생성하고,
spring boot 프로젝트를 빌드하여 이미지 생성, 컨테이너 생성하였습니다.
api 호출하는 기본 url을 서버단 컨테이너의 ip주소로 해야한다거나
+ 도커 컴포즈 depends on 이나 link를 사용하지 않을 경우
서버 컨테이너를 먼저 띄우고, 클라이언트 컨테이너를 띄울때 주는 옵션이나 이런게 있을까요 ?
답변 1
1
안녕하세요!
react / spring boot / mysql 을 컨테이너로 관리했을때 연결하는 방법은 두가지가 있습니다.
1. 가상 network 사용
같은 network로 묶을 경우 container name을 host명으로 사용할 수 있습니다.
예를 들어 mysql 컨테이너를 mysql이라는 이름으로 생성했다면 spring boot에서 localhost대신 mysql을 호스트명으로 사용하시면 됩니다.
2. host network로 port를 노출하여 연결
-p 옵션을 이용하여 컨테이너의 포트를 호스트로 연결하고 호스트 IP를 사용할 수 있습니다. localhost대신 호스트(서버)의 IP를 입력하시면 됩니다.
1번의 장점은 호스트 포트를 사용하지 않기 때문에 포트가 겹칠 걱정없이 사용할 수 있지만, 하나의 서버에 3개의 컨테이너를 모두 실행해야 합니다. 2번은 여러개의 서버에 컨테이너를 분산 관리하는 경우에도 사용할 수 있습니다.
두번째 질문하신 depends_on 옵션의 경우 docker는 비슷한 기능을 제공하지 않습니다. 일반적으로 restart옵션을 always로 설정하고 필요한 컨테이너가 실행되기 전에 먼저 실행되면 실패 후 다시 재시도 하는 방법을 사용합니다.
약간 지저분해 보인다고 생각할 수 있는데, 컨테이너는 언제든지 죽었다 살아날 수 있고 재시도 후 다시 성공하도록 구성하는게 일반적이라고 생각하시면 좋습니다.
감사합니다!
실습코드
0
103
1
-v 옵션 후 workpress database 에러
0
117
1
Error establishing a database connection 질문 드립니다.
0
331
1
다중 컨테이너 실행 (APP)
0
181
1
ghost 실습 데이터베이스 에러
0
320
1
ghost 관리자 화면, 환경변수 url
0
224
1
ghost 실습 - 환경변수 url (2024)
0
241
1
hellonode 실습 질문있습니다.
0
184
1
docker-compose.yml 속성 문의
0
282
1
docker run 명령어중 /bin/sh 파라미터 문의
0
403
1
docker run -p 3000:3000 실행 시 오류
0
452
1
node app.js 실행 에러
0
325
1
Permission denied
0
674
1
result code build 시에 오류 있으신 분들
4
364
2
frontend, backend environment port 속성 관련 질문
0
371
1
app.js 실행 시 http 모듈 관련 이슈
0
340
1
방명록 배포과정중 질문이 있습니다.
0
305
1
Error establishing a database connection 에러 해결좀 해주세요
0
1400
1
docker 설치 오류
0
627
1
도커 기본 명령어 진행 중 막히는 부분
0
353
1
custom docker와 Base Image
0
248
1
안녕하세요 -d 옵션과 --rm 옵션에 대해서 질문을 하고자 합니다!
0
281
1
-v flag 에 질문있습니다
0
252
1
윈도우 파워쉘로 도커를 할라고하는데 컨테이너 만들기는 어떻게 해야되나요
0
779
1





