Докерфайл
FROM openjdk:8
ADD target/docker-spring-boot.jar docker-spring-boot.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","docker-spring-boot.jar"]
команда для сборки докера
docker build -f Dockerfile -t docker-spring-boot .
Spring Boot Jar ниже.
target/docker-spring-boot.jar
команда для запуска докера
docker run -p 8085:8085 docker-spring-boot
Приложение нормально работает без докера. Не удалось запустить приложение на докере.
Ошибка:
This site can’t be reached
логи запуска докера
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)
Ссылка на гитхаб https://github.com/robert07ravikumar/spring-boot-докер
запустите свое приложение с помощью docker run -d -p 8085:8085 image-name, а затем опубликуйте вывод docker logs -f container_id
добавлены логи докера
Как вы используете докер (Mac, Windows, Linux host, docker toolbox)? И включите значение echo $DOCKER_HOST.
$ echo $DOCKER_HOST tcp://192.168.99.100:2376 .Запуск докера в Windows 7 и набор инструментов докера.




Я могу запустить весеннее загрузочное приложение с докером, как показано ниже:
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
Вам нужно заменить докер-весна-загрузка на имя файла jar, расположенное в целевом файле после сборки.
пожалуйста, проверьте мой код и найдите ошибку, которую я делаю
Имя моей банки — docker-spring-boot.jar.
Можете ли вы войти в свой контейнер и отправить запрос на завивание, чтобы убедиться, что ваше приложение правильно работает внутри контейнера? docker exec -it containerId /bin/bash && curl http://localhost:8085
root@a6664e1d3b83:/# curl локальный хост: 8085/отдых/докер/привет1 Greetingsroot@a6664e1d3b83:/# . Я могу получить ответ от URL-адреса завитка. @RestController
Похоже, ваше приложение возвращает ответ, когда вы видите «Приветствие». Вы пытались отправить запрос с хост-компьютера? Какую ошибку вы видите?
ответ хост-компьютера. Этот сайт недоступен. localhost отказался подключаться. Попробуйте: Проверка подключения Проверка прокси и брандмауэра ERR_CONNECTION_REFUSED
Ваше приложение выглядит нормально, и кажется, что вы можете получить к нему доступ изнутри контейнера с локальным хостом в соответствии с вашим комментарием:
root@a6664e1d3b83:/# curl localhost:8085/rest/docker/hello1
Greetings
root@a6664e1d3b83:/# . I am able to get the response from the curl url
Вероятно, потому что Spring Boot будет привязан к локальному хосту по умолчанию (127.0.0.1). Вам нужно добавить следующие свойства для привязки ко всем хостам (или указать, какой IP для привязки):
server.address=0.0.0.0 # Bind all
В вашем application.properties
URL-адреса, которые я пробовал, были localhost, 127.0.0.1, 0.0.0.0 и т. д.
Приложение заработало, как только я запустил URL-адрес узла докера:
http://192.168.99.100:8085/rest/docker/hello1
Ваш код хорошо работает на любой машине UNIX, проблема связана с сетью Docker для версии Windows. По умолчанию при запуске Docker используется сеть мост, если не указано другое, но в Windows сеть Docker работает по-другому, вы можете проверить ссылку здесь для более подробной информации о проблеме. Это известная ошибка, но мы надеемся, что когда-нибудь она будет исправлена командой Docker.
Элтон Стоунман в своем блоге также даст вам лучшее объяснение этой проблемы, см. следующий связь.
Это работа для меня. Здесь я использую терминал быстрого запуска docker (Oracle Virtual Box). Я попытался найти IP-адрес контейнера с помощью команды «docker-machine ip» в терминале быстрого запуска. Он дал мне ip вроде 192.168.99.100. Затем в браузере я ввел URL-адрес типа http://192.168.99.100:8080/привет1, и это дало ожидаемый результат. Итак, сначала попробуйте получить IP-адрес с помощью команды docker-machine ip.
в надежде, что это может помочь кому-то избежать того, что я только что пережил: понял, что я обновил свой application.properties / yml с помощью server.port: 8049, но мой файл для создания докеров сопоставил порты - '8049:8080'. отлично работал в среде IDE, но при попытке подключиться по telnet к подключенному контейнеру докеров соединение немедленно закрывалось. я унесу в могилу количество часов, которые я потратил впустую, пытаясь отследить это...
не могли бы вы предоставить еще несколько выходных данных журнала. согласно журналам, ваше приложение работает, но когда вы нажимаете API, что происходит?