如何在主机上访问docker app?

时间:2018-12-06 15:51:48

标签: docker

我正在尝试将我的有角度的应用程序码头化。以下是我的docker文件,但是我无法在端口4200中访问该应用程序。我不知道我的配置有什么问题。这是angular-cli应用程序。你能帮我找到它吗?

FROM node:alpine

WORKDIR /app

COPY ./package.json .

RUN npm install

COPY . .

EXPOSE 80 4200

CMD ["npm", "run", "start"]

docker container run --publish 4200:4200 ngdockerapp

0ab397bc6233        ngdockerapp         "npm run start"     37 seconds ago      Up 35 seconds       80/tcp, 0.0.0.0:4200->4200/tcp   ngdockerapp_ng_1

但是我无法在具有4200端口的主机中访问该应用程序。我可以看到它在容器内部正常启动。

项目链接:

https://github.com/manojp1988/ngDockerApp.git

2 个答案:

答案 0 :(得分:2)

问题是,您在容器中使用ng serve而不指定主机。 默认情况下,ng服务将只为127.0.0.1服务。您可以使用--host参数进行更改。

有关服务的文档:https://github.com/angular/angular-cli/wiki/serve

我在您的仓库中添加了一个pullrequest进行修复:https://github.com/manojp1988/ngDockerApp/pull/1

答案 1 :(得分:0)

如果运行docker exec -it <container_id> /bin/bash,则可以访问该容器。检查一下How do I get into a Docker container?