简体   繁体   中英

how to access mysql docker container in spring boot docker container

i have 2 docker file

1. mysql-dockerfile

 FROM mysql:5.5

 EXPOSE 3306

 ENV MYSQL_ROOT_PASSWORD root

 ENV MYSQL_DATABASE ToDoList

command used to build dockerfiles are as below

sudo docker build -t mysql-img  -f mysql-dockerfile .

sudo docker run -d --name mysqlcontainer -p 3030:3306 mysql-img

2. java-dockerfile

FROM openjdk:8-jre-alpine

EXPOSE 9090

WORKDIR /usr/src

COPY target/*.war todoApp.war 

CMD ["java","-jar","todoApp.war"]

command used to build dockerfiles are as below

 sudo docker build -t java-img  -f java-dockerfile .
 docker run --name javacontainer -d -p 4040:9090 java-img

spring boot application consist jdbc url as follow

spring.datasource.url=jdbc:mysql://localhost:3030/ToDoList

i am not able to start project because spring boot application in docker is not able to connect mysql db which is in another container.

one solution i found is to bring two docker container in one docker network or link docker container. can anyone please suggest good solution, modified docker run command and modified jdbc url.

Put them into one network and use container names as hostnames:

docker network create foo
docker run --network=foo --name mysqlcontainer -d mysql-img
docker run --network=foo --name javacontainer -d java-img

Dont expose ports - they are exposed automatically between containers inside network.

To connect inside, use mysqlcontainer:3306 and javacontainer:9090 .

To connect from host, you will need port exposing.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM