Данные из docker контейнера не приходят на localhost, если прокинуть порты

Рейтинг: 0Ответов: 1Опубликовано: 14.04.2023

Всем привет. Столкнулся с неприятной проблемой. При запуске абсолютно любого образа Docker и проброски его портов на localhost не получается получить данные, происходит вечная загрузка.

Например, написал простое hello world приложение на spring. Запускаю локально, все работает, делаю докер образ из него и стартую командой docker run -d --net=host myorg/myapp --restart=always и все работает, обратиться по http://localhost:8080/v1/app могу, но если запущу с docker run -d -p 8080:8080 myorg/myapp --restart=always, то происходит вечная загрузка при обращении на http://localhost:8080/v1/app.

Так происходит абсолютно с любым образов, postgres, mongo, pgadmin4 и тд.

Излазил всё. Если что, то Ubuntu 20.04, Docker 23.0.3, Docker Desktop был установлен, но затем удален.

Лог спринга:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.5)

2023-04-15 11:55:58.919  INFO 1 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication v0.0.1-SNAPSHOT using Java 17.0.6 on d9b3953e7d63 with PID 1 (/app.jar started by root in /)
2023-04-15 11:55:58.925  INFO 1 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
2023-04-15 11:56:00.727  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-04-15 11:56:00.747  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-04-15 11:56:00.748  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.45]
2023-04-15 11:56:00.837  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-04-15 11:56:00.838  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1812 ms
2023-04-15 11:56:01.182  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2023-04-15 11:56:01.484  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2023-04-15 11:56:01.502  INFO 1 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 3.606 seconds (JVM running for 4.482)

Dockerfile:

FROM eclipse-temurin:17-jdk-alpine
COPY target/demo-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","app.jar"]

Кусок docker inspect:

"HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8080"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },

Ответы

▲ 0Принят

Переустановка убунты помогла мне решить эту проблему. У меня есть предположение, почему так получилось. Был установлен podman и поверх еще установил docker, что могло изменить конфиг. файл для прокидывания портов. Так же мог помешать docker desktop.