docker - Docker 只在 80 端口上运行
问题描述
我无法在端口 4000 上运行我的 docker 映像,即使我可以在端口 80 上运行它。我在这里做错了什么?
FROM node:latest as build
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:latest
COPY --from=build /usr/src/app/dist/admin /usr/share/nginx/html
EXPOSE 4200
我正在使用以下命令创建图像:
docker build --pull --rm -f "DockerFile" -t admin1:v1 "."
当我在端口 80 上运行它时,我可以使用它:
docker run --rm -d -p 4200:4200/tcp -p 80:80/tcp admin1:v1
但是,当我运行以下命令时,我无法使用它:
docker run --rm -d -p 4200:4200/tcp -p 4000:4000/tcp admin1:v1
我在网上研究过类似的问题,但我无法解决问题。任何建议将不胜感激!
解决方案
您需要将 docker 容器端口映射到 docker 主机端口。
试试下面的命令
docker run --rm -d -p 4200:4200/tcp -p 4000:80/tcp admin1:v1
以下是 Docker 文档的摘录
-p 8080:80 Map TCP port 80 in the container to port 8080 on the Docker host.
您可以参考链接以获取更多信息。 Docker 文档
推荐阅读
- cuda - 相当于金属计算内核的 Cuda 内核
- nlp - 将 word2vec 字典加载到 gensim
- julia - 与 ::getfield() 相关的 ForwardDiff.jl 和 ReverseDiff.jl 错误消息
- jekyll - 如何在 Jekyll 中使用 if 语句修改 .md 文件?
- php - .htaccess 重写以前的链接挑战
- sql-server - 如何将 Azure SQL 数据库中的副本复制到我的本地 ubuntu 机器中?
- etl - 列已更改
- node.js - 如何让 jasmine-ts 使用特定种子执行我的规范?
- typescript - 使用 Typescript 同时输出 ES6 (*.es.js) 和 ES5 (*.js)
- node.js - 无法使用 MailGun 节点 API 发送电子邮件