Docker端口未映射

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

很抱歉,事实证明这很明显,但是我很难从主机上的容器外部访问dockerized服务器。这是我在做什么:

我正在使用以下命令运行容器:

docker run -it --rm --name aurelia_dev -p 8888:8080 -v /Users/terskine/git/marvel/legendary:/app aurelia /bin/bash

在容器中,我正在运行应用程序:

cd app/
au run

在另一个终端中,我可以看到容器正在运行:

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
4b0a14bc6e88        aurelia             "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:8888->8080/tcp   aurelia_dev

但是,我无法到达服务器:

$ curl http://localhost:8888
curl: (52) Empty reply from server

但是在容器中,我可以到达服务器:

$ docker exec -it aurelia_dev /bin/bash
root@4b0a14bc6e88:/# curl http://localhost:8080
<!DOCTYPE html> ...
<html>
... [A whole bunch of HTML] ...
</html>
root@4b0a14bc6e88:/# 

为什么我不能从主机端口8888的容器外部访问服务器?

我确定我缺少明显的步骤。请帮帮我。

谢谢!


编辑1:我认为以下内容不是必需的,但是如果有帮助,我正在运行一个简单的aurelia容器,该容器是使用以下Dockerfile创建的:

FROM node

RUN npm install -g aurelia-cli

CMD /bin/bash

我正在运行的aurelia项目是官方教程项目,可以在这里找到:https://aurelia.io/docs/tutorials/creating-a-contact-manager


编辑2:

这是我的主机文件的内容。

root@d7d1cc03a5c0:/# cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      d7d1cc03a5c0

而且似乎我没有在听172.17.0.2:8080

root@d7d1cc03a5c0:/# curl 172.17.0.2:8080
curl: (7) Failed to connect to 172.17.0.2 port 8080: Connection refused
docker aurelia
2个回答
0
投票

我已经在另一个线程上回答了,但是对于其他人来说,在这里寻找答案是:

您几乎可以在所有aurelia命令中覆盖hostportau run是其中之一,

示例:

au run --host 0.0.0.0 --port 7070

au run --watch --host 127.0.0.1 --port 7080

au cypressau protractor也存在相同的标志集,此外,您还可以告诉au在运行测试之前和之后启动和关闭应用程序,并在不同的端口和IP地址上再次运行您希望如此。

示例:

au cypress --run --start --port 7070 --host 127.0.0.1

au protractor --headless --start --port 7070 --host 127.0.0.1

结帐herehere

此外,您也可以查看Aurelia Build Systems上的文档和我的博客文章Medium上的>


0
投票

事实证明这与我的Docker配置无关。相反,这是Aurelia使用的webpack的问题。 Webpack无法在Docker容器中与localhost一起使用,请签出here

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