spring(boot)

[docker]app을 docker로 기동하면서 docker로 생성한 DB 연동

수학소년 2023. 5. 14. 20:58

Q. 질문

DB를 docker로 생성하면 localhost로 접속 가능

spirng boot를 docker로 실행한다면 DB 접속정보에서 host는 여전히 localhost?

 

A.---------------

docker-compose를 이용하면

docker-compose.yml에 container name을 정하고, 그걸로 접속정보를 설정하면 됌

 

DB는 이미 container가 생성된 경우엔

app을 docker로 실행할 때 --link 옵션을 사용.

 

--link

docker run ..... --link <container_name>:<alias> ......

 

application.properties

...
spring.datasource.url=jdbc:mariadb://<alias>:3306/springboot
...

 

접속이 안될 수 있음

설정을 잘못 한거임. 아래 내용 확인해볼 것.

DB container의 container_name: "mariadb", port: "3307:3306" 일 때

DB tool로 접속 할때는 localhost:3307로 접속하니까

application.properties는 jdbc:mariadb://mymariadb:3307/springboot 로 설정하고

docker run ... --link mariadb:mymariadb .....로 실행했더니 connection 거부 당함

3307은 local에서 접속 할때 port고, container를 통해서 접속할때는 container 내부 port로 설정해야 함.

 

docker run --name mariadb ........... mariadb

application.properties는 jdbc:mariadb://mymariadb:3306/springboot

docker run ... --link mariadb:mymariadb .....