【问题标题】:How do I expose ports in Docker on Windows 10?如何在 Windows 10 上的 Docker 中公开端口?
【发布时间】:2017-04-20 09:17:11
【问题描述】:

我在我的 Windows 10 Pro 机器上正确安装了 Docker CE 副本。

我正在尝试使用docker-compose 运行一个简单的节点应用程序,并且能够在 docker 中运行时动态更新代码。我按照this website 构建它,我的代码可以在here 找到。

当我在本地运行代码时导航到localhost:8080,我得到了我的网页。当我通过 Docker 运行它时,我从我的网络浏览器(相同的 url)得到“这个页面不工作”。我已经确保在 Docker 中运行之前停止本地运行,以免端口越界。

我的 Dockerfile:

FROM node:6.10.2

RUN useradd --user-group --create-home --shell /bin/false app

ENV HOME=/home/app

COPY package.json npm-shrinkwrap.json $HOME/diet-program/
RUN chown -R app:app $HOME/*

USER app
WORKDIR $HOME/diet-program
RUN npm install

EXPOSE 8080

CMD ["npm", "run", "dev"]

我的 docker-compose.yml:

version: '2'

services:
  diet-program:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - .:/home/app/diet-program
      - /home/app/diet-program/node_modules

dev 命令映射到:webpack-dev-server --content-base src --inline --hot

【问题讨论】:

  • 你需要将VOLUME /home/app/diet-program添加到Dockerfile中。这将创建挂载点 docker compose 将用户挂载您的应用程序源目录。
  • 顺便说一句,您的实际问题是什么?您的端口设置看起来不错。您看到了什么让您认为它不起作用?
  • 抱歉不清楚:当我使用 Docker 运行它时,我看不到我的网页,但当我在本地运行时,我可以看到它。 docker-compose 构建似乎和 docker-compose up 一样正常工作。

标签: node.js docker docker-compose webpack-dev-server


【解决方案1】:

为了暴露端口尝试换行

ports:
      - 8080:8080

进入

ports:
      - "8080:8080"

docker-compose.yml 文件中

更多关于暴露端口的细节在这里:https://docs.docker.com/compose/compose-file/#ports

为了检查您是否在“NetworkSettings”中使用命令docker inspect <container_name> 调用正确的IP 检查并查看IPAddress。

【讨论】:

  • 感谢语法检查,我更新了我的代码以包含引号,但仍然没有。
  • 您从正确的 IP 呼叫?尝试命令docker inspect <container_name> 并检查“网络设置”以获取映射的端口和IP 查看IPAddress。
  • 我只是在本地运行它,我需要做一些特别的事情来访问 docker 实例吗?
  • 运行 docker-machine ip <machine_name> 并尝试点击它。
猜你喜欢
  • 1970-01-01
  • 2017-03-13
  • 2021-11-16
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多