![](/img/trans.png)
[英]not able to connect mysql docker container from spring boot docker container
[英]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:3306
和javacontainer:9090
。
要从主机连接,您将需要端口暴露。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.