![](/img/trans.png)
[英]Spring boot application unable to connect to mariadb (in Docker)
[英]Not able to connect to docker image with a spring boot application
文件
FROM openjdk:8
ADD target/docker-spring-boot.jar docker-spring-boot.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","docker-spring-boot.jar"]
构建docker的命令
docker build -f Dockerfile -t docker-spring-boot .
弹簧靴罐位置如下。
target/docker-spring-boot.jar
运行docker的命令
docker run -p 8085:8085 docker-spring-boot
该应用程序在没有 docker 的情况下正常工作。 无法在 docker 上运行应用程序。
错误:
This site can’t be reached
docker 运行日志
E:\micorservices_samples\docker-spring-boot\docker-springbootdocker run -p 8085 :8085 docker-spring-boot
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __
_ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.4.RELEASE)
2019-04-07 18:29:47.944 INFO 1 --- [ main]
c.r.d.DockerSpringbootAppl ication : Starting
DockerSpringbootApplication v0.0.1-SNAPSHOT on 352ac4d 12009 with PID
1 (/docker-spring-boot.jar started by root in /) 2019-04-07
18:29:47.970 INFO 1 --- [main] c.r.d.DockerSpringbootAppl
ication : No active profile set, falling back to default
profiles: defaul t 2019-04-07 18:29:54.302 INFO 1 --- [
main] o.s.b.w.embedded.tomcat.To mcatWebServer : Tomcat initialized
with port(s): 8085 (http) 2019-04-07 18:29:54.463 INFO 1 --- [
main] o.apache.catalina.core.Sta ndardService : Starting service
[Tomcat] 2019-04-07 18:29:54.464 INFO 1 --- [ main]
org.apache.catalina.core.S tandardEngine : Starting Servlet engine:
[Apache Tomcat/9.0.17] 2019-04-07 18:29:54.854 INFO 1 --- [
main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring
embedded WebApplicationContext 2019-04-07 18:29:54.855 INFO 1 --- [
main] o.s.web.context.ContextLoa der : Root
WebApplicationContext: initialization completed in 6539 ms 2019-04-07
18:29:55.859 INFO 1 --- [main] o.s.s.concurrent.ThreadPoo
lTaskExecutor : Initializing ExecutorService
'applicationTaskExecutor' 2019-04-07 18:29:56.691 INFO 1 --- [
main] o.s.b.w.embedded.tomcat.To mcatWebServer : Tomcat started on
port(s): 8085 (http) with context path '' 2019-04-07 18:29:56.705
INFO 1 --- [main] c.r.d.DockerSpringbootAppl ication
: Started DockerSpringbootApplication in 10.902 seconds (JVM runn ing
for 12.566)
C:\Users\Mabeldocker logs -f 20026c6c7602
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __
_ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.4.RELEASE)
2019-04-07 18:51:23.381 INFO 1 --- [ main]
c.r.d.DockerSpringbootAppl ication : Starting
DockerSpringbootApplication v0.0.1-SNAPSHOT on 20026c6 c7602 with PID
1 (/dsb.jar started by root in /) 2019-04-07 18:51:23.403 INFO 1 ---
[ main] c.r.d.DockerSpringbootAppl ication : No
active profile set, falling back to default profiles: defaul t
2019-04-07 18:51:29.434 INFO 1 --- [main]
o.s.b.w.embedded.tomcat.To mcatWebServer : Tomcat initialized with
port(s): 8085 (http) 2019-04-07 18:51:29.608 INFO 1 --- [
main] o.apache.catalina.core.Sta ndardService : Starting service
[Tomcat] 2019-04-07 18:51:29.613 INFO 1 --- [ main]
org.apache.catalina.core.S tandardEngine : Starting Servlet engine:
[Apache Tomcat/9.0.17] 2019-04-07 18:51:30.012 INFO 1 --- [
main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring
embedded WebApplicationContext 2019-04-07 18:51:30.014 INFO 1 --- [
main] o.s.web.context.ContextLoa der : Root
WebApplicationContext: initialization completed in 6275 ms 2019-04-07
18:51:31.038 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoo
lTaskExecutor : Initializing ExecutorService
'applicationTaskExecutor' 2019-04-07 18:51:31.879 INFO 1 --- [
main] o.s.b.w.embedded.tomcat.To mcatWebServer : Tomcat started on
port(s): 8085 (http) with context path '' 2019-04-07 18:51:31.895
INFO 1 --- [ main] c.r.d.DockerSpringbootAppl ication
: Started DockerSpringbootApplication in 10.631 seconds (JVM runn ing
for 12.241)
Github 链接https://github.com/robert07ravikumar/spring-boot-docker
我尝试的 URL 是localhost
、 127.0.0.1
、 0.0.0.0
等。
一旦我运行了 docker 主机 URL,应用程序就可以工作了:
http://192.168.99.100:8085/rest/docker/hello1
您的应用程序看起来不错,而且您似乎可以根据您的评论从带有 localhost的容器内访问它:
root@a6664e1d3b83:/# curl localhost:8085/rest/docker/hello1
Greetings
root@a6664e1d3b83:/# . I am able to get the response from the curl url
这可能是因为Spring Boot 默认绑定到 localhost (127.0.0.1) 。 您需要添加以下属性以绑定到所有主机(或指定要绑定的 IP):
server.address=0.0.0.0 # Bind all
在您的application.properties
我可以使用 docker 运行 spring boot 应用程序,如下 dockerfile :
FROM maven:3-alpine AS build-project
ADD . ./docker-spring-boot
WORKDIR /docker-spring-boot
RUN mvn clean install
FROM openjdk:8-jre-alpine
EXPOSE 8080
WORKDIR /app
COPY --from=build-project ./docker-spring-boot/target/docker-spring-boot-*.jar ./docker-spring-boot.jar
CMD ["java", "-jar", "docker-spring-boot.jar"]
对于运行命令:
docker build -t docker-spring-boot .
docker run -it -d -p 8080:8080 docker-spring-boot
您需要在构建后将docker-spring-boot替换为位于目标中的 jar 文件名。
它为我工作。 这里我使用的是 docker 快速启动终端 (Oracle Virtual Box)。 我试图通过在快速启动终端中使用“docker-machine ip”命令来查找容器 IP 是什么。 它给了我像 192.168.99.100 这样的 ip。 所以然后在浏览器中我输入了像http://192.168.99.100:8080/hello1这样的网址,它给了我预期的结果。 所以首先尝试使用 docker-machine ip 命令获取 ip。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.