Запустите образ Docker как контейнер (для пользователей Windows) - PullRequest
0 голосов
/ 08 сентября 2018

Я создал образ докера из файла Docker. Я вижу, что изображение было построено успешно ( $ docker images) и когда я использую эту команду для запуска образа как контейнера:

$ docker run -i -t 8dbd9e392a96 

Мое приложение успешно запущено, но когда я пытаюсь открыть, у меня появляется это сообщение

Этот сайт недоступен

Это мой список изображений:

 $ docker  images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
blog                latest              b9c52b9f2999        About an hour ago   143MB
openjdk             8-jre-alpine        14a48fdee8af        3 days ago          83MB

и мой список контейнеров:

$ docker  ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4dbb68c87813        b9c52b9f2999        "./entrypoint.sh"   27 minutes ago      Up 27 minutes       8080/tcp            dazzling_shirley

Я получил этот результат после запуска приложения с помощью образа докера:

    ----------------------------------------------------------
        Application 'blog' is running! Access URLs:
        Local:          http://localhost:8080
        External:       http://172.17.0.2:8080
        Profile(s):     [dev, swagger]
----------------------------------------------------------

Не знаю, почему приложение не помогло, пожалуйста? !

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Используете ли вы панель инструментов Docker для Windows. Панель инструментов Docker в Windows запускает Docker в Linux на основе virtualbox vm. Возможно, вам придется открыть порт в самой виртуальной коробке. Таким образом, ваш хост-компьютер может получить доступ к порту гостевого компьютера.

См. https://www.simplified.guide/virtualbox/port-forwarding

0 голосов
/ 08 сентября 2018

Вы должны сопоставить порт контейнера докера с портом хоста. Причина в том, что Docker-контейнер является изолированной средой, и его общедоступный IP-адрес такой же, как у хост-машины. Вы должны убедиться, что хост знает, когда перенаправлять запросы в контейнер. Поэтому, когда вы сопоставляете порт хоста с портом док-контейнера, все запросы, поступающие на HOST_IP_ADDRESS: HOST_PORT, перенаправляются на док-контейнер, порт которого отображается на HOST_PORT.

Это делается с помощью флага -p при использовании команды docker run, как показано ниже:

docker run -it -p 8080:8080 IMAGE_NAME

Теперь все запросы, поступающие на localhost: 8080, будут направлены на приложение, работающее в контейнере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...