将Docker镜像作为容器运行(对于Windows用户)

问题描述 投票:2回答:2

我从dockerfile构建了一个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

在使用docker image运行应用程序后,我得到了这个结果:

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

我不知道为什么应用程序没有任何帮助请? !

java docker dockerfile
2个回答
0
投票

你在使用docker工具箱吗? Windows上的Docker工具箱在基于Linux的虚拟机vm中运行docker。您可能必须在虚拟机VM本身中打开端口。所以你的主机操作系统可以访问客户操作系统的端口。

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


1
投票

您必须将docker container端口映射到主机端口。原因是docker容器是一个隔离的环境,它的公共ip与主机的相同。您必须确保主机知道何时将请求重定向到容器。因此,当您将主机端口映射到docker容器端口时,所有进入HOST_IP_ADDRESS:HOST_PORT的请求都将重定向到其端口映射到HOST_PORT的docker容器。

您可以在使用-p命令时使用docker run标志执行此操作,如下所示:

docker run -it -p 8080:8080 IMAGE_NAME

现在,所有发送到localhost:8080的请求将被定向到在容器中运行的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.