我尝试用下面的docker组合文件启动两个容器:
version: '2'
services:
client-app:
image: client-app:latest
build: ./client-app/Dockerfile
volumes:
- ./client-app:/usr/src/app
ports:
- 3000:8000
spring-boot-server:
build: ./spring-boot-server/Dockerfile
volumes:
- ./spring-boot-server:/usr/src/app
ports:
- 7000:7000spring boot服务器尝试连接到位于另一个主机和网络上的远程数据库服务器。Docker启动client-app容器成功,但启动spring-boot-server失败。此日志显示服务器崩溃,因为它无法连接到远程数据库:
2021-01-25 21:02:28.393 INFO 1 --- [main] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Starting...
2021-01-25 21:02:29.553 ERROR 1 --- [main] com.zaxxer.hikari.pool.HikariPool: HikariPool-1 - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.两个容器的Dockerfile都会创建有效的镜像,我可以通过这些镜像手动运行容器。它看起来像是有一些默认的网络限制,由组成文件启动的容器。
运行在Ubuntu上的Docker compose版本:
docker-compose version 1.8.0, build unknown=
进一步的调查:
我创建了一个Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get install -y mysql-client
CMD mysql -A -P 3306 -h 8.8.8.8 --user=root --password=mypassword -e "SELECT VERSION()" mydatabase以及一个docker-compose.yml
version: '2'
services:
test-remote-db-compose:
build: .
ports:
- 8000:8000单独测试与远程数据库的连接。测试成功地通过了。
发布于 2021-01-27 03:54:15
在执行this、主机mashine重启和docker-compose up --build之后,这个问题已经得到了很好的解决。
https://stackoverflow.com/questions/65892737
复制相似问题