Docker - Mac 上的“端口不可用”问题
Posted
技术标签:
【中文标题】Docker - Mac 上的“端口不可用”问题【英文标题】:Docker - "Ports are not available" problem on Mac 【发布时间】:2021-12-26 23:05:55 【问题描述】:我已经使用 Java Spring 完成了一个小型项目,并且正在尝试对它进行 Docker 化。 一切都很好,直到我尝试运行 docker。 当我运行 docker 时,出现“端口不可用”错误。
我一直在尝试将 Dockerfile 上的 EXPOSE 设置为许多其他端口(8085、9000、9090...)并相应地更改 docker run 命令,但没有任何效果。 还有一点要提的是,当我试图访问“http://localhost:8080/”来查看它是否真的被占用时,那里什么都没有。
我该如何解决?
更新: 我尝试运行入门 docker,它给了我相同的错误消息,所以问题出在我的 docker 上。 有没有人遇到同样的问题并且能够解决它?
【问题讨论】:
使用-p 9090:8080
,您的应用程序在 docker 中将可以通过您机器上的localhost:9090
访问,而不是 8080。检查您的防火墙,也许您的端口有问题?
@Manu 虽然你说的是真的,但仔细观察输出,似乎 docker CLI 无法连接到内部套接字
【参考方案1】:
所以我终于设法解决了这个问题。 我遇到了一些问题:
在 Dockerfile 中:
我的 java 版本是 11,所以我不得不将 Dockerfile 中的行更改为“FROM openjdk:11”。
我需要在 ADD 行的最后一个参数中添加“.jar”。 (改成ADD target/digital-wallet-docker.jar digital-wallet-docker.jar)
在我的防火墙中: 我需要修改我的隐私设置。我为 Docker 启用了定位服务,它解决了我遇到的“端口不可用”错误。
希望它会有所帮助:)
【讨论】:
以上是关于Docker - Mac 上的“端口不可用”问题的主要内容,如果未能解决你的问题,请参考以下文章
端口不可用:listen tcp 0.0.0.0/50070:bind:试图以访问权限禁止的方式访问套接字
Docker-compose 在 M1 mac 上的 VM (Parallels) 中