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 .....