gpt4 book ai didi

docker - 如何访问作为Docker容器运行的节点api

转载 作者:行者123 更新时间:2023-12-02 18:27:27 26 4
gpt4 key购买 nike

我已经为已被docker化的node js应用程序构建了一个docker-compose文件,但是我不知道如何对作为docker容器运行的node js应用程序进行API调用,请帮助我解决这个问题。

我的DockerFile:

FROM node:10.15-slim

ENV NODE_ENV=production

WORKDIR /app

COPY package.json package-lock*.json ./

RUN npm install && npm cache clean --force

COPY . .

CMD ["node", "./bin/www"]

我的Docker-compose文件:
version: '2.4'

services:
express:
build:
context: .
dockerfile: Dockerfile
command: /app/node_modules/.bin/nodemon ./bin/www
ports:
- 3000:3000
volumes:
- .:/app
environment:
- DEBUG=sample-express:*
- NODE_ENV=development

最佳答案

您需要从运行应用程序的Docker公开端口。
假设您的应用程序在docker内部的8080端口上运行,这是公开该特定端口的方法:

EXPOSE 8080



然后,您需要将docker公开的端口映射到您的本地端口。您可以在docker中执行以下操作:

docker run -p 49160:8080 -d docker_image



如果您使用的是docker-compose,您将按照以下步骤进行操作:
version: '3'

services:
nodejs:
build:
context: .
dockerfile: Dockerfile
image: nodejs
container_name: nodejs
ports:
- "8080:8080"

更新

假设您要将 /api请求发送到后端服务器。这是您在nginx conf中执行的操作:
server {
listen 80

location /api {
proxy_pass http://backend:8080/;
}
}

希望对您有所帮助。

关于docker - 如何访问作为Docker容器运行的节点api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58504098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com