我从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]
----------------------------------------------------------
我不知道为什么应用程序没有任何帮助请? !
你在使用docker工具箱吗? Windows上的Docker工具箱在基于Linux的虚拟机vm中运行docker。您可能必须在虚拟机VM本身中打开端口。所以你的主机操作系统可以访问客户操作系统的端口。
您必须将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的请求将被定向到在容器中运行的应用程序。