我是Spring Boot和Docker的新手。
我试图创建一个连接到mysql并使用Docker来运行两者的Spring Boot应用程序。
我按照 步骤1- 创建mysql映像并开始运行它的步骤。
docker run --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=test" mysql
Step2 创建一个SpringBoot应用程序
docker build -f Dockerfile -t gradle-springboot-docker .
第三步:运行 Spring Boot应用程序并与Mysql链接
docker run -t --name gradle-springboot-docker --link docker-mysql:mysql -p 8080:8080 gradle-springboot-docker
它给mysql提供了基本的连接错误。我列出了以下application.properties。自从我使用Docker后,我的连接信息是否正确?mysql的主机是什么?
SSL properties server.port=8080 #DataSource datasource.driver = com.mysql.jdbc.Driver datasource.url= jdbc:mysql://localhost:3306/test? autoReconnect=true&useSSL=false datasource.username=root datasource.password=root # Hibernate hibernate.dialect = org.hibernate.dialect.MySQL5Dialect hibernate.show_sql = true hibernate.lazy = true hibernate.max_fetch_depth = 3 hibernate.packagesToScan = com.springboot.poc # Once DB is created change below property to 'update' hibernate.hbm2ddl.auto = update
您应该使用mysql的容器名称作为主机名,因为这些链接在一起,因此可以通过spring的名称发现mysql容器。因此,您需要更改datasource.url= jdbc:mysql://localhost:3306/test?为datasource.url= jdbc:mysql://docker- mysql:3306/test?
datasource.url= jdbc:mysql://localhost:3306/test?
datasource.url= jdbc:mysql://docker- mysql:3306/test?
或者您可以使用别名,如@ g00glen00b建议的那样,例如: datasource.url= jdbc:mysql://mysql:3306/test?
datasource.url= jdbc:mysql://mysql:3306/test?