我正在嘗試在 docker 上運行 Node.js 應用程式。我正在使用 WSL 并已在 docker 上成功運行該應用程式。現在的問題是,當我嘗試在瀏覽器上訪問該應用程式時,它顯示為無回應。我無法在瀏覽器中訪問它。我還有另一個在 docker 上運行的 Reactjs 應用程式,我可以通過瀏覽器訪問該應用程式。我究竟做錯了什么?為什么在 Windows 瀏覽器中無法訪問 Nodejs 應用程式?下面是 Node.js 的 Dockerfile
# pull official base image
FROM node:12.18.3-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
# add app
COPY . ./
# start app
CMD ["npm", "run", "dev"]
以下是用于在 docker 中運行應用程式映像的命令
docker build -t gdns/node-app .
winpty docker run \
-it \
--rm \
-v ${PWD}:/app \
-v /app/node_modules \
-p 4000:4000 \
-e CHOKIDAR_USEPOLLING=true \
gdns/node-app
Node.js 應用程式正在運行,我可以查看日志如下

請幫忙
uj5u.com熱心網友回復:
好的。您正在 wsl 中運行 docker。WSL 是 Windows 作業系統之上的一個虛擬盒子。所以它有自己的網路配接器。所以請通過“ifconfig”命令找到wsl的IP。它會告訴你 wsl 的 IP。
然后您可以從瀏覽器連接該 IP
http://wsl-ip:4000
uj5u.com熱心網友回復:
您必須expose在容器內使用 nodejs 埠。您只需向容器打開主機埠 4000,但容器不偵聽埠 4000,為此您必須更改 Dockerfile
更改 Dockerfile
# pull official base image
FROM node:12.18.3-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
# add app
COPY . ./
EXPOSE 4000
# start app
CMD ["npm", "run", "dev"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/364952.html
標籤:节点.js 视窗 码头工人 linux的windows子系统
