-1

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.

  • Possible duplicate of [Unable to Connect MySQL container to Tomcat Container in docker](https://stackoverflow.com/questions/35510964/unable-to-connect-mysql-container-to-tomcat-container-in-docker) – David Maze Jan 16 '19 at 14:42

1 Answers1

3

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.

grapes
  • 8,185
  • 1
  • 19
  • 31