繁体   English   中英

如何在Spring Boot Docker容器中访问MySQL Docker容器

[英]how to access mysql docker container in spring boot docker container

我有2个docker文件

1. mysql-dockerfile

 FROM mysql:5.5

 EXPOSE 3306

 ENV MYSQL_ROOT_PASSWORD root

 ENV MYSQL_DATABASE ToDoList

用于构建dockerfile的命令如下

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"]

用于构建dockerfile的命令如下

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

Spring Boot应用程序包含jdbc url,如下所示

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

我无法启动项目,因为docker中的spring boot应用程序无法连接另一个容器中的mysql db。

我发现的一种解决方案是将两个docker容器引入一个docker网络或链接docker容器。 任何人都可以提出好的解决方案,修改的docker run命令和修改的jdbc url。

将它们放在一个网络中,并使用容器名称作为主机名:

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

不要公开端口-网络内部容器之间会自动公开它们。

要进行内部连接,请使用mysqlcontainer:3306javacontainer:9090

要从主机连接,您将需要端口暴露。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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