我在使用Docker使用mysql运行spring boot时遇到了问题。在没有Docker的情况下,它在本地运行良好。我的dockerfile
FROM maven:3.3-jdk-8-alpine
ENV MAVEN_HOME /usr/lib/mvn
ENV PATH $MAVEN_HOME/bin:$PATH
ENV SPRING_DATASOURCE_URL jdbc:mysql://my-db:3306/registration_springboot?createDatabaseIfNotExist=true
ENV SPRING_DATASOURCE_USERNAME vnphu
ENV SPRING_DATASOURCE_PASSWORD password
docker-compose.yml文件
version: '3'
services:
my-db:
image: mysql/mysql-server:5.7
container_name: my-db
environment:
MYSQL_USER: vnphu
MYSQL_DATABASE: registration_springboot
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
ports:
- '3306-3306'
web:
build: .
working_dir: /app
volumes:
- .:/app
- ~/.m2:/root/.m2
ports:
- "8080:8080"
command: mvn clean spring-boot:run
depends_on:
- my-db
运行时错误:docker-compose up-build
Caused by: java.net.ConnectException: Connection refused (Connection refused)
web_1 | at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_121]
web_1 | at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_121]
web_1 | at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_121]
web_1 | at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_121]
web_1 | at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_121]
web_1 | at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_121]
web_1 | at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155) ~[mysql-connector-java-8.0.19.jar:8.0.19]
web_1 | at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65) ~[mysql-connector-java-8.0.19.jar:8.0.19]
web_1 | ... 115 common frames omitted
Web
应用程序正在尝试连接到尚未可用的my-db
(数据库仍在加载)您可以根据您的偏好使用以下任何解决方案。
>
重新启动失败
将docker-compose文件修改为
web:
ports:
"8080:8080"
restart:on-failure
睡眠
在环境下修改docker-compose文件
web:
ports:
"8080:8080"
environment:
-SLEEP_LENGTH=5
wait-for-it.sh文件
等待文件
这种方法需要您修改Dockerfile和docker-compose文件
我创建了一个docker compose文件,将MySql连接到SpringBoot应用程序。但我得到了这个错误: 我尝试在本地机器中使用docker默认ip运行Spring Boot应用程序,同时在这个docker-compose.yml文件中只运行MySql容器,结果运行得非常好。但当我尝试docker编写文件时。我知道这个错误。
我有一个连接到mysql数据库的Spring Boot应用程序。如果我以经典的方式在本地运行它,它工作得很好。但当我尝试dockerise时,它-数据库成功启动,但应用程序却看不到数据库。 我的DockerFile: 我执行的内容: 首先,我构建我的service_img 然后执行docker-compose up。在日志中,我看到数据库启动日志,然后是应用程序启动日志,然后是错误: 有什么建议吗
问题内容: 我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 Docker-machine正常运行,并且能够通过docker-machine ssh连接。 但是无法从docker-compose连接。 无法通过http + unix://var/run/docker.sock连接到Docker守护程序-它正在运行吗? 如果它
问题内容: 我收到一条错误消息,提示我无法连接到Docker守护程序。我调查了其他人遇到类似问题的答案,但没有帮助。我正在运行Ubuntu 15.10版本。我将尝试提供我所有的信息。 Docker版本 Docker-Compose版本 如果我尝试停止或启动服务,就会发生这种情况。 如果我跑步 任何帮助将不胜感激。让我知道您是否需要更多信息。 问题答案: 我发现了这个问题,似乎可以解决我的问题。 G
我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 docker-machine运行正常,并且能够通过docker-machine SSH进行连接。 但无法从Docker-Compose连接。 无法连接到HTTP+UNIX上的Docker后台进程://var/run/Docker.sock-它正在运行吗? 如果它位于非标准位置
问题内容: 我有MySQL的Laravel应用程序,我正在尝试使用docker-compose在Docker中运行它。但是,当应用尝试连接数据库时,它会抛出: Connector.php 55行中的PDOException:SQLSTATE [HY000] [2002]无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(2) 我的docker-com