[英]springboot mysql docker windows7
OS- Windows 7 作业系统-Windows 7
Docker version : Docker version 18.03.0-ce, build 0520e24302 Docker版本:Docker版本18.03.0-CE,内部版本0520E24302
Springboot version: 1.5.3.RELEASE Springboot版本:1.5.3.RELEASE
I have taken codebase from https://github.com/TechPrimers/docker-mysql-spring-boot-example (This is working sample code in MacOS.) 我已经从https://github.com/TechPrimers/docker-mysql-spring-boot-example中获取了代码库(这是MacOS中的有效示例代码。)
My application.properties looks like below 我的application.properties如下所示
# DataSource settings: set here your own configurations for the database
# connection. In this example we have "netgloo_blog" as database name and
# "root" as username and password.
spring.datasource.url = jdbc:mysql://mysql-standalone:3306/test
spring.datasource.username = testuser
spring.datasource.password = testuserpass
# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = create
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager)
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
server.port=8086
Dockerfile looks like below Dockerfile如下所示
FROM openjdk:8
ADD target/users-mysql.jar users-mysql.jar
EXPOSE 8086
ENTRYPOINT ["java", "-jar", "users-mysql.jar"]
Use MySQL Image published by Docker Hub ( https://hub.docker.com/_/mysql/ ) Command to run the mysql container 使用Docker Hub发布的MySQL镜像( https://hub.docker.com/_/mysql/ )命令运行mysql容器
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=rootpass -e MYSQL_DATABASE=test -e MYSQL_USER=testuser -e MYSQL_PASSWORD=testuserpass -d mysql:5.6 docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD = rootpass -e MYSQL_DATABASE = test -e MYSQL_USER = testuser -e MYSQL_PASSWORD = testuserpass -d mysql:5.6
I see docker mysql container named mysql-standalone. 我看到名为mysql-standalone的docker mysql容器。
Using the Dockerfile create the Docker image. 使用Dockerfile创建Docker映像。 From the directory of Dockerfile -
从Dockerfile目录-
docker build . 码头工人建设。 -t users-mysql
-t用户-mysql
I see docker image created users-mysql 我看到docker image创建了users-mysql
docker run -p 8086:8086 --name users-mysql --link mysql-standalone:mysql -d users-mysql docker run -p 8086:8086 --name用户-mysql-链接mysql-standalone:mysql -d users-mysql
I see application running in docker container named users-mysql 我看到应用程序在名为users-mysql的Docker容器中运行
This site can't be reached localhost refused to connect. 无法访问此站点本地主机拒绝连接。
Am I doing something wrong? 难道我做错了什么?
Based on some comments I thought of adding application start logs. 基于一些评论,我想到了添加应用程序启动日志。
2018-05-17 20:52:29.921 INFO 1 --- [ main] SpringDataJpaHibernateExampleApplication : Starting SpringDataJpaHibernateExampleApplication v0.0.1-SNAPSHOT o
n b4f3a2acd0a9 with PID 1 (/users-mysql.jar started by root in /)
2018-05-17 20:52:29.937 INFO 1 --- [ main] SpringDataJpaHibernateExampleApplication : No active profile set, falling back to default profiles: default
2018-05-17 20:52:30.124 INFO 1 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConf
igEmbeddedWebApplicationContext@5b37e0d2: startup date [Thu May 17 20:52:30 UTC 2018]; root of context hierarchy
2018-05-17 20:52:34.632 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8086 (http)
2018-05-17 20:52:34.661 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2018-05-17 20:52:34.665 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.14
2018-05-17 20:52:34.873 INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-05-17 20:52:34.873 INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 4752 ms
2018-05-17 20:52:35.206 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2018-05-17 20:52:35.220 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-05-17 20:52:35.221 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-05-17 20:52:35.222 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-05-17 20:52:35.222 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-05-17 20:52:36.727 INFO 1 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'd
efault'
2018-05-17 20:52:36.774 INFO 1 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2018-05-17 20:52:37.010 INFO 1 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.0.12.Final}
2018-05-17 20:52:37.013 INFO 1 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-05-17 20:52:37.015 INFO 1 --- [ main] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist
2018-05-17 20:52:37.121 INFO 1 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2018-05-17 20:52:37.609 INFO 1 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-05-17 20:52:38.541 INFO 1 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export
Hibernate: drop table if exists users
Hibernate: create table users (id integer not null, name varchar(255), salary integer, team_name varchar(255), primary key (id))
2018-05-17 20:52:38.712 INFO 1 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000230: Schema export complete
2018-05-17 20:52:38.761 INFO 1 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-05-17 20:52:39.881 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.emb
edded.AnnotationConfigEmbeddedWebApplicationContext@5b37e0d2: startup date [Thu May 17 20:52:30 UTC 2018]; root of context hierarchy
2018-05-17 20:52:40.089 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/all/create],methods=[GET]}" onto public java.util.List<c
om.techprimers.jpa.springdatajpahibernateexample.resource.Users> com.techprimers.jpa.springdatajpahibernateexample.resource.Resource.users()
2018-05-17 20:52:40.092 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/all/],methods=[GET]}" onto public java.util.List<com.tec
hprimers.jpa.springdatajpahibernateexample.resource.Users> com.techprimers.jpa.springdatajpahibernateexample.resource.Resource.all()
2018-05-17 20:52:40.103 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springfram
ework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.Ht
tpServletResponse)
2018-05-17 20:52:40.103 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEn
tity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-05-17 20:52:40.180 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.sprin
gframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-17 20:52:40.181 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframewo
rk.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-17 20:52:40.364 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.s
pringframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-17 20:52:41.108 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-05-17 20:52:41.230 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8086 (http)
2018-05-17 20:52:41.252 INFO 1 --- [ main] SpringDataJpaHibernateExampleApplication : Started SpringDataJpaHibernateExampleApplication in 12.225 seconds
(JVM running for 13.208)
Answer was simple. 答案很简单。 Though everything is happening on windows, the underlying OS is Linux, so we have to replace localhost by ip address of linux machine of VM
尽管一切都在Windows上发生,但是底层操作系统是Linux,因此我们必须用VM的Linux机器的IP地址替换localhost。
so instead of hitting: http://localhost:8086/all/ I had to hit: http://192.168.99.100:8086/all/ 因此,我不必点击: http:// localhost:8086 / all /我必须点击: http : //192.168.99.100 :8086/all/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.