【问题标题】:Dockerfile error " port is already allocated". How to solve this problem?Dockerfile 错误“端口已分配”。如何解决这个问题呢?
【发布时间】:2020-08-26 14:08:17
【问题描述】:

所以我正在尝试从 VS 代码插件运行 Docker,

尝试构建一个 Docker 镜像,看看它是否有效。

我收到此错误消息

执行命令:docker run --rm -it -p 3000:3000/tcp -p 5000:5000/tcp ecommerce:latest

docker:来自守护进程的错误响应:驱动程序外部编程失败 端点上的连接clever_hermann (4c4b6a299257d59a8bad812ee498ecbe689a1e134492dfbb8d9da4dc2acfee35): 绑定 0.0.0.0:5000 失败:端口已分配。终点站 进程 "/usr/bin/zsh '-c', 'docker run --rm -it -p 3000:3000/tcp -p 5000:5000/tcp ecommerce:latest'" 以退出代码终止:125。

这是我的 Dockerfile

FROM node:latest

RUN mkdir /app

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

EXPOSE 5000

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

关于如何继续的任何线索?

【问题讨论】:

  • 您的 5000 端口上是否有其他应用程序正在运行? (主机端口,而不是客人)
  • 显然我知道,但我不知道如何检查。我什至不知道端口是什么,在 IT 的意思。但是问题通过下面的答案解决了
  • 当然解决了。因为它没有使用端口 5000。5000 没有保留。也许你在 5000 或其他服务上运行了一个 npm 服务器
  • @mommonteirocl 我不明白。什么东西不使用端口 5000? “5000 端口未保留”是什么意思?

标签: docker


【解决方案1】:

这是因为其他一些应用程序或容器正在您的计算机上运行并获取了这些端口号。但是您仍然可以使用端口映射更改来运行。

docker run --rm -it  -p 8282:3000/tcp -p 8181:5000/tcp ecommerce:latest

在上述命令中,您将容器端口 3000/tcp 映射到您的机器 localhost:82825000/tcp 相同。

一旦容器运行,然后转到浏览器 http://localhost:8181http://localhost:8282 以获取相应的输出

【讨论】:

  • @MrFacundo 如果这解决了问题,请接受我的回答!
  • 我该怎么做?
  • @MrFacundo 在我的答案左侧有按钮 ✔ 所以点击它。就在赞成和反对按钮的下方
  • 太棒了,我不知道我应该这样做。再次感谢 出于好奇,这对您(或任何其他用户)有何用处?你得到积分?你用这些积分做什么,找到工作?
  • @MrFacundo 这只会给我和你一些分数。不,不,这不会让任何人找到工作。如果您接受答案,将来如果有人遇到同样的问题,那么他们会先查看接受的答案,这将对其他人有所帮助。就是这样!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 2011-05-04
  • 2019-06-22
  • 2013-11-23
相关资源
最近更新 更多